web-dev-qa-db-ja.com

Xcode 3.2.3とiPhone SDK 4をインストールし、「Base SDK missing」を取得し、他のSDKを表示できない

SOでここで見た他の多くのQ/Aを結び付けるために、このコミュニティwikiを作成しました。ここにいる場合は、おそらくiPhone SDK 4でXcode 3.2.3の最終バージョン( ダウンロードリンク 、reg reqd)をインストールした後、これらの問題のいずれかまたは両方が発生した可能性があります。

  • 以前に動作していたXcode iPhoneプロジェクトでは、どこかで「Base SDK Missing」が発生します。このようなもの:

    Ruh-roh!

  • 関連するがより一般的な観察では、以前に利用可能なDeviceまたはSimulator SDKの選択肢(3.0、3.1、3.1.3など)のいずれも、それらを表示するために使用した場所では利用できません。

80
Clay Bridges

概要

これがなぜ起こっているのか、そして具体的な「Base SDK Missing」問題の修正方法を説明します。修正のためだけに最後までスキップできますが、このすべてを読むことをお勧めします。この問題については、John Muchowの優れた take もお勧めします。

Xcode 3.2.4のアップグレードに特に興味がある場合は、これに強く関連する問題があるため、 here をお勧めします。

すべてを支配する1つのSDK

契約は次のとおりです。現在、4.0は、新規または更新されたiPhone専用アプリを送信できる唯一のSDKバージョンです。これはAppleの iOS 4準備チェックリスト (reg reqd)から直接のものです。

すべての新しいアプリケーションと既存のアプリケーションの更新は、iPhone SDK 4でビルドする必要があります。AppStoreはiOS 2.xをターゲットとするアプリケーションをサポートしなくなります。

おそらく-私はここで推測している-iPad専用およびユニバーサルアプリは3.2 SDKを使用する必要があります。 ThatがSDKの唯一の選択肢である4.0と3.2の理由です。

また、以前にマップされていたSDKがdeprecated、gones-villeであるため、プロジェクトが破損している理由でもあります。

(しかし)3はマジックナンバーです

リラックス。 iPhone OS 3.0を実行しているデバイスをターゲットにすることはできます(ただし、それ以下ではありません)。コンパイルに使用するSDKは制限しません-downward-プログラムまたはサポートできるiOSバージョン。プロジェクトなどでパッチを適用したら(次のセクションを参照)、「iPhone OS Deployment Target」をより低いiOSバージョンに設定できます。これを行う方法の簡単なショットについては、cf。次のセクションの手順7。

現在、いくつかのトリッキーな地形に入っていることに注意してください。通常のXcode 3.2.3コンパイラは、3.0のみの呼び出しへの準拠を強制しなくなり、これらのシミュレータもありません。また、4.0の機能をサポートする場合は、3.0デバイスでのクラッシュを防ぐために条件付きコードを実行する必要があります。楽しい。

以前のXcodeバージョンまたはSDKを(Apple!から)ダウンロードしてインストールすることができます(cf. here )。はい、複数のXcodeバージョンを異なるディレクトリにインストールできます。つまり、/ Developerに1つのバージョンのみを配置できます。古いXcodeを使用して、アプリのコンプライアンスと3.x SDKをテストし、手間のかかる作業を高度なコンパイラーとシミュレーターに移行できます。ただし、以前のSDKの製品を使用してアプリストアに送信することはできなくなりました。

FWIW、私は私が出荷する前にちょうどこのチェックをする予定です。

私の状態はどんな状態ですか

Matt Gallagherには、 "条件付きiOS3、iOS3.2、iOS4コードのヒントとコツ" というタイトルのバージョン条件コードに関するCocoa with Loveの投稿があります。 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 OS展開ターゲット]で、サポートする最も低いバージョンを選択します。アプリストアを介した2.xバージョンのサポートは廃止されることに注意してください。上記の「準備チェックリスト」の引用を参照してください。

Xcode 4以降のベースSDKの場所

上記の手順に従いますが、手順2で次をクリックします。

  • ナビゲーターのサイドバーの左側にあるフォルダーアイコンを使用して、プロジェクトナビゲーターを選択します。
  • そのビューの上部にあるプロジェクトを選択します。
  • プロジェクト構成がメインエディターパネルに表示されます。上部の[ビルド設定]を選択すると、[アーキテクチャ]セクションが表示されます。

 Project navigator Build Settings

(この答えは Sherman Loanswer のわずかに適合したバージョンです)

補遺

このトピックに関するより詳細な情報は、この最初の回答 question にも記載されています。役に立つ情報もあります here

165
Clay Bridges

設定を修正しても「Base SDK Missing」が表示され、ビルドできない場合は、プロジェクトをリロードしてください。 Xcodeを終了しましたが、閉じて再度開くこともおそらく機能します。

8
John Stephen

XcodeおよびiPhone OS SDKの以前のバージョンをダウンロードするためにClay Bridgesから提供されたリンクは機能しません。ただし、これらのリンクを編集して「iphone」の最初のインスタンスを「ios」に置き換えることは、少なくともSnow Leopardリンクについては機能します(ダウンロード中)。

正しいリンク、および古いiOS SDKを新しいXcodeインストールにインストールするための情報は、Chris Fletcherによる次のブログエントリから得られました。 how to install iphone sdk 2.0.3.1 for xcode 3.2

5
SteveCaine

私もこれと同じ問題を抱えていました。また、複数のターゲットを使用して以前のターゲットに切り替えると、XcodeがiOSターゲットからMacOSターゲットに切り替えるなど、いくつかの変更を忘れるという問題もありました。

option/altドロップダウンをクリック

非常に便利ないくつかの追加オプションを明らかにしました。

3
user245019