2010-06-22 68 views
5

我安裝了SDK 4.0,發現我無法訪問3.2之前的所有以前的SDK版本。基本SDK 3.0到SDK 4.0

我找到了一個下載SDK 3.1.3的鏈接,所以我有兩個.dmg安裝文件。

問題:

SDK 4.0不允許訪問早期版本嗎?

如果上面的答案是否定的,那麼這是否意味着我必須安裝兩個版本的SDK?

如果是對上述....怎麼樣?在希望

+0

[SDKs在使用Iphone SDK安裝XCode的新版本時會消失?](http://stackoverflow.com/questions/3000241/sdks-disapearing-when-installing-new-versions-of-xcode- with-iphone-sdk) – zoul 2010-06-22 11:01:33

+0

您可以使用SDK4.0並定位早期的設備。這在[前一個問題]中有詳細介紹(http://stackoverflow.com/questions/3027120/how-to-make-iphone-app-for-multiple-firmwares/3027213#3027213)。 – progrmr 2010-06-23 04:00:12

回答

0

部署目標

由於可以設置爲任何東西(甚至2.2),但基本SDK無關除了3.2和4.0。例如,我想如果將部署目標設置爲3.0,則基本SDK也可以設置爲3.0。

因此,如果部署SDK爲3.0,而基本SDK爲4.0,哪一個正在編譯?
請注意,在新的SDK中,您不能選擇除上述3.2和4.0之外的其他任何內容。

+0

請任何人都可以幫忙嗎?似乎很不得不安裝兩個版本的XCode,並在每個版本中編譯相同的應用程序以使其能夠在早期版本上工作? 只是爲了確認,我安裝了SDK 4.0,而且現在我只有3.2和4.0的目標? 如果我想構建到任何更低的地方,我必須關閉XCode並打開早期版本,使我可以訪問下面的那些目標3.2。 奇怪的是,4.0版本的開發者文件夾中列出了早期目標的所有SDK,但不會讓我從XCode中訪問它們。 幫助!請..... 謝謝 – user7865437 2010-06-25 07:51:57

+0

克里斯,http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html有一個很好的解釋如何部署目標和基地SDK設置工作,以及您編譯的應用程序如何解析符號。 – 2010-07-01 23:33:17

0

看起來像蘋果的問題。我在安裝Snow Leopard和iPhone SDK 4後也得到: 「Base SDK Missing」。 我的情況沒有Base SDK。 我是系統的新手,並且意在使其成爲評論,而不是答案。

更新: 在閱讀SDK 4附帶的自述文件後,我發現它(xCode 3.2.3及其iPhone SDK4)不支持3.2之前的iPhone - 解決方案是安裝較舊的SDK在不同的目錄中。另外,如果您使用更新的xCode/SDK,請不要忘記更新您的設備。
其他更新:
請忽略此答案,並查看由aizuchi提供的上面的一個。不要忘記閱讀關於Base SDK區域與部署不同的部分。

+1

這是不正確的。即使您想要支持舊版本的操作系統,也沒有理由安裝多個XCode副本。 – user342492 2010-06-26 23:08:59

+0

我相信你是對的。我花了很長時間才終於明白你對「iPhone操作系統部署目標」所說的話,並且它正在獲得對舊版操作系統的支持。基本SDK在設置爲3.2或4.0之後就可以實現滾動 - 然後在下面的幾個屏幕上執行「部署」字段。無論如何,非常感謝您的答覆! – MCroswell 2010-06-27 06:24:13

7

術語很混亂,但一旦你明白這一點很容易。

'Base SDK'只是您正在編譯的SDK版本。因此,您可以使用Base SDK中的任何類,屬性或方法。

部署版本是您希望用戶能夠運行您的代碼的操作系統的最早版本。如果您使用基本SDK版本中可用的功能,但不使用部署版本,則您的代碼將在兩個版本上啓動,但在使用新功能時會在早期操作系統版本上崩潰,因此您需要檢查新功能是否現在如果你想這樣做。

因此,您不需要3.0的基本SDK在3.0上運行 - 只需將基本SDK設置爲4.0,並將部署版本設置爲3.0,並且不要使用3.0以外版本的任何SDK功能。

+0

嗨,是的,我明白,可能會問這個問題是錯誤的。我的問題是我不再看到3.2以下的部署版本? – user7865437 2010-06-23 11:26:39

+0

啊哈!明白了,但看看我爲什麼會產生混淆。 「因此,您不需要3.0的Base SDK在3.0上運行 - 只需將Base SDK設置爲4.0並將Deployment Version設置爲3.0,並且不要使用3.0以外版本的任何SDK功能。」 您可以通過構建配置表單來完成此操作,然後您可以選擇以前的版本。 我用來做這件事的正常方式是從工具欄的設備選項,它用來顯示所有以前的版本,而現在用SDK 4它沒有。 至少我現在正在工作:-) 謝謝 – user7865437 2010-06-25 10:38:03

+1

這是否意味着在運行時無法告訴您意外使用了新的API? – jamesh 2010-06-25 11:13:28

0

據我所知,使用任何軟件開發工具包除3.2和4.0以外的版本現在已被棄用於應用商店提交。因此,邏輯上,這些其他SDK不再是xCode(3.2.3)中的選項。國際海事組織,試圖繞過這是徒勞的。我寫了一個社區維基,它可以更全面地解釋它here

+0

爲什麼你想要「繞過它」呢?您可以設置部署目標,就好像沒有任何更改。 – typeoneerror 2010-07-06 08:02:25

+0

在很多層面上都是假的。 首先,我認爲你是誤解了部署目標。 AFAIK,它只是應用商店的旗幟,你仍然可以訪問「基礎SDK」的完整API,沒有任何警告。您只負責有條件地使用超出部署目標的API。例如,我的部署目標是3.0,但我可以實例化一個UIGestureRecognizer(3.2+)。在會引發錯誤的字段中。此外,有些人可能想要「繞過它」,例如,運行舊模擬器的感覺,這是您通過每次xCode升級到現在爲止所能做到的。 – 2010-07-06 15:43:39

0

您需要將Base SDK設置爲最新版本,並將iPhone Deployment Target設置爲3.0。

建議您測試早期版本的應用程序。