2009-12-17 17 views
10

我有點困惑於爲應用程序商店和正確的SDK &操作系統版本構建應用程序。我已提交我的應用程序的應用程序商店,並在iTunes連接的應用程序的詳細信息屏幕,它說:iPhone:最低操作系統,部署目標和基地/活動SDK

「最低操作系統要求:3.1.2」

我還沒有看到在任何應用應用程序商店有3.1.2作爲最小的操作系統,他們都說3.0。在我創建它之前,我在這裏閱讀了幾件事情,並且我認爲我明白了一切!

基本上,我的應用程序不使用任何代碼,只存在> 3.0,所以我想最低的操作系統爲3.0。我的生成設置爲:

目標信息

  • 基地SDK:iPhone設備3.0
  • iPhone OS部署目標:iPhone OS 3.0

Xcode的主窗口

  • A ctive SDK:iPhone設備3.1.2

我聽說過在Info.plist中放入最低的操作系統版本,但我沒有在我的這種東西。

我構建的應用程序完全一樣,並提交它。我的應用設置是否正確?我的應用會在應用商店或3.1.2中顯示3.0嗎?我有點不確定你爲什麼要將Active SDK設置爲最新版本(3.1.2),當你想要定位3.0,3.3.12設備時,但這是我閱讀的內容!

任何幫助意見將不勝感激!

+0

看看這個回答類似的問題:http://stackoverflow.com/questions/380138/which-iphone-active-sdk-version-should-i -use/385125#385125 – 2009-12-17 14:33:03

回答

25

好吧,我已經成功地OS上運行的很好應用在閱讀完畢後再想想它!

基本上,Active SDK只是基礎SDK的構建時間覆蓋。默認情況下,當基本SDK更改時,會自動將部署目標更改爲與SDK相同的操作系統。因此,當我想在3.1.2 SDK下構建應用程序,但在3.0操作系統上運行應用程序時,我將Active SDK更改爲3.1.2,但這已自動更改了最低操作系統(部署目標)。我通過查看我的.app文件中的包內容中的Info.plist文件來看到這一點。

因此,最好的方法是將Base SDK設置爲最新的SDK(當前爲3.1.2),然後手動將Deployment Target設置爲3.0 OS。一旦2不同,它將不再自動改變。

但是,這意味着您的應用可以安裝在可能具有3.0,3.1或3.1.2 SDK的3.0設備上。因此,您使用的任何框架,方法或屬性僅適用於大於3.0的SDK,您將不得不使用conditionally

當您開始構建應用程序時,請確保將Active Target設置爲與您的基本SDK相同,例如,設備3.1.2。但請記住在Device 3.0,Device 3.1和Device 3.1.2下編譯您的應用程序只是爲了檢查編譯器警告。這將確保您沒有任何SDK中不存在的任何代碼訪問方法/框架直至您的部署目標。

我希望這可以幫助任何處於我的位置的人,並且找不到關於它如何工作的簡單解釋。

SDK Compatibility Guide是非常有用和信息豐富。然而,我花了一點額外的時間來理解這個概念以及一切如何運作。這從引導圖像是有用的:

alt text http://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/cross_development/art/using_sdks.jpg

0

轉到項目信息 - >構建,並期待在IPHONEOS_DEPLOYMENT_TARGET財產 其實我使用3.1.2 SDK,建設,每高於2.2.1

+0

這是如何工作的?如果您將Active/Base SDK設置爲3.1.2,那麼您的部署目標將更改爲3.1.2,實際上不允許將其安裝在低於3.1.2的任何內容上? – 2009-12-17 17:54:02

+0

它是一種魔術,或者obj-c動態運行時。可以構建使用OS 3.1專有功能的應用程序,但仍可與OS 2.0兼容。您只需避免標有「iPhone OS 3.0及更高版本中可用」的調用或在方法調用之前使用-respondsToSelector。 – vaddieg 2009-12-18 00:19:49

相關問題