2010-07-01 66 views
80

我創造了這個社區維基的若干 其他Q/A的我在這裏看到的SO綁在一起。如果你在這裏,你可能已經安裝 3.2.3的Xcode與iPhone SDK 4(download link,REG REQD)的最終版本,然後再遇到這些問題的一個或兩個:安裝的Xcode 3.2.3 W/iPhone SDK 4,得到「基地SDK缺少的」,也看不到其他的SDK

  • 在你之前正在運行的xCode iPhone項目中,您會在某處找到「Base SDK Missing」。事情是這樣的:

    Ruh-roh!

  • 在相關,但更普遍的觀察,沒有設備或模擬器SDK的選擇以前提供的一整套的(如3.0,3.1,3.1.3,...)可你曾經看過他們的地方。

回答

166

概述

我要解釋爲什麼這是怎麼回事,然後如何解決具體的「基地SDK缺少」的問題。你可以直接跳到底部,但我建議閱讀所有這些。我還建議對這個問題約翰Muchow的優秀take

如果您在Xcode 3.2.4升級,其中有一個密切相關的問題特別感興趣,您可能要賦予here

一個SDK來統治他們所有

這裏的交易:現在4.0是允許提交 新的或更新的iPhone,只是應用的唯一的SDK版本。這是蘋果公司的iOS 4 Readiness Checklist(REG REQD)直接:

所有新應用程序和更新現有的應用程序必須 與iPhone SDK 4.建請注意,在App Store不會 不再支持應用程序爲目標的iOS 2 。X。

大概 - 我在這裏猜測 - 僅iPad和通用應用程序 應該使用3.2 SDK。 就是爲什麼4.0 & 3.2是你的SDK的唯一的選擇。

這也是爲什麼你的項目現在被打破,因爲它先前映射到的SDK是已棄用,gones-ville。

(但是)3是一個幻數

放鬆。您仍然可以定位運行iPhone OS 3.0(但不低於)的設備。 您使用編譯的SDK不限制 - 向下 - 您可編程或支持的iOS版本 。一旦你在你的項目等已經修補的東西(參見下一節),您可以設置「iPhone操作系統部署目標」,以較低的iOS版本。爲了快速拍攝如何做到這一點,參閱。下一節中的第7步。

注意,你現在進入一些棘手的地形。您通常使用的Xcode 3.2.3編譯器將不再強制您僅遵從3.0調用,也不具備用於這些調用的模擬器。如果你想支持4.0的功能,你必須做一些有條件的代碼來防止3.0設備崩潰。樂趣。

您仍然可以從Apple下載並安裝以前的Xcode版本或SDK(參見here)。是的,您可以在不同的目錄中安裝多個Xcode版本,即只在/ Developer中放入一個版本。您可以使用舊的Xcode來測試您的應用程序與3.x SDK的兼容性,將艱苦的工作轉移到花哨的編譯器和模擬器。但是,您不能再使用以前SDK的產品提交給應用商店。

FWIW,我計劃在我發貨前做這個檢查。

我的條件是

馬特·加拉格爾什麼條件與資格"Tips & Tricks for conditional iOS3, iOS3.2 and iOS4 code"版本上條件代碼愛情後可可。如果您計劃有條件使用4.0功能,則強烈建議您查看它。

修復「基地SDK缺少」

  1. 裝載該項目
  2. 從菜單中選擇項目>編輯項目設置...
  3. 在建築>基礎SDK,選擇可用的設備之一 選項:iPhone 3.2或iPhone 4.0。如果你只有iPhone,4.0是要走的路。
  4. 關閉該窗口。
  5. 從菜單中選擇項目>編輯活動目標「YourTarget」
  6. 在建築>基礎SDK,選擇可用的設備 或模擬器選項之一:iPhone 3.2和iPhone 4.0。
  7. 如果要定位以前的iOS版本,則在同一個 窗口的部署> iPhone操作系統部署目標下,選擇要支持的最低版本 。請注意,不支持通過應用商店支持2.x版本 。請參閱上面的「準備就緒清單」報價。

基地SDK位置的Xcode 4及以上

按照上述步驟,但對於第2步,單擊下面的:

  • 使用上的左側文件夾圖標,選擇項目導航導航邊欄
  • 選擇項目,該項目將位於該視圖的頂部。
  • 項目配置將出現在主編輯器面板中;在頂部和下面選擇「構建設置」將是「架構」部分。

      Project navigator           Build Settings

(這個答案是Sherman Loanswer一個稍微改編版)

附錄

更詳細的信息在這個題目也可以在第一個答案中找到到這個question。還有一些有用的信息here

+3

對於那些認爲項目設置項目不存在的人來說,對於那些盲目的快速注意,它是Project> Edit Project Settings。 – 2010-07-13 17:02:51

+0

@Lou Z .:修正,謝謝 – 2010-07-14 19:57:08

+1

'你仍然可以下載(從Apple!)並安裝以前的Xcode版本(例如3.1.4:Leopard,Snow Leopard)。'該鏈接實際上是3.1.3 sdk,而不是3.1.4。 – Remover 2010-07-19 10:12:15

3

我也有同樣的問題。我在使用多個目標切換回以前的目標時也遇到了問題,xcode會忘記更改一些內容,例如從iOS目標切換到MacOS目標。

選項/ alt單擊下拉菜單

顯示了一些額外的選項,其中非常有用。

5

Clay Bridges給出的下載Xcode和iPhone OS SDK早期版本的鏈接不起作用。然而,編輯這些鏈接以'ios'取代'iphone'的第一個實例是行不通的,至少對於Snow Leopard鏈接(現在下載)來說。

正確的鏈接,以及有關將較舊的iOS SDK安裝到較新的Xcode安裝中的信息來自Chris Fletcher的此博客條目:howto install iphone sdk 2.0.3.1 for xcode 3.2強烈推薦!

+0

好的信息,史蒂夫。我想我的答案是一個社區wiki。任何機會,你可以編輯它與正確的信息。謝謝。 – 2010-09-28 16:48:31

+0

我是StackOverflow的新手,我想我需要更多的「點數」才能讓我編輯他人發佈的帖子。界面並沒有給我任何明顯的方式來爲你的帖子說'編輯這篇文章'。抱歉。 – SteveCaine 2010-10-10 20:57:52

8

如果您修復了您的設置,但仍然看到「Base SDK Missing」並且無法構建,請重新加載您的項目。我退出了Xcode,但關閉並重新打開可能也會起作用。

+0

這是爲什麼?看起來奇怪的是必須關閉xcode並加載備份,只是設置更改的b/c:0 – RyBolt 2011-03-09 18:30:24

+0

好問題RyBolt,但它就是這樣。蘋果公司必須在某處緩存某些東西,然後重新加載,但這只是一種猜測。 – 2011-03-10 01:19:35