Xcode3.2.3をiPhoneSDK 4とともにインストールすると、「Base SDKが見つかりません」と表示され、他のSDKが表示されません。


80

私はこのコミュニティウィキを作成して、ここSOで見た他の多くのQ / Aをまとめました。ここにいる場合は、Xcode3.2.3の最終バージョンをiPhoneSDK 4(ダウンロードリンク、reg reqd)とともにインストールした後、次の問題のいずれかまたは両方が発生した可能性があります。

  • 以前に作業していたXcodeiPhoneプロジェクトでは、どこかに「BaseSDKMissing」が表示されます。このようなもの:

    ルーロー!

  • 関連するがより一般的な観察では、以前に利用可能だったデバイスまたはシミュレーターSDKの選択肢(3.0、3.1、3.1.3など)のいずれも、以前はそれらを表示していた場所では利用できません。

回答:


165

概要概要

これが発生する理由を説明し、次に特定の「BaseSDKMissing」問題を修正する方法を説明します。修正のために一番下までスキップできますが、これをすべて読むことをお勧めします。JohnMuchowの素晴らしいテイクもお勧めします、この問題に。

強く関連する問題があるXcode3.2.4のアップグレードに特に関心がある場合は、ここで相談することをお勧めします。

それらすべてを統治する1つのSDK

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

すべての新しいアプリケーションと既存のアプリケーションのアップデートは、iPhone SDK 4でビルドする必要があります。AppStoreは、iOS2.xを対象とするアプリケーションをサポートしなくなることに注意してください。

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

以前にマップされたSDKが非推奨になったため、プロジェクトが壊れたのもそのためです。、goens-villeに。

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

リラックス。iPhone OS 3.0を実行しているデバイスを引き続きターゲットにすることができます(ただし、それ以下ではありません)。コンパイルに使用するSDKは制限されません-下向き-あなたがプログラムまたは支援ができるかのiOS版。プロジェクトなどでパッチを適用したら(次のセクションを参照)、「iPhoneOS展開ターゲット」をより低いiOSバージョンに設定できます。これを行う方法の簡単なショットについては、を参照してください。次のセクションのステップ7。

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

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

FWIW、出荷前にこのチェックを行う予定です。

私の状態はどのような状態ですか

Matt Gallagherは、「条件付きiOS3、iOS3.2、およびiOS4コードのヒントコツ」というタイトルのバージョン条件付きコードに関するCocoa withLoveの投稿を公開しています。4.0の機能を条件付きで使用することを計画している場合は、これを確認することを強くお勧めします。

「BaseSDKMissing」の修正

  1. プロジェクトをロードします
  2. メニューから、[プロジェクト]> [プロジェクト設定の編集...]を選択します。
  3. [アーキテクチャ]> [ベースSDK]で、使用可能なデバイスオプションの1つ(iPhone3.2またはiPhone4.0)を選択します。iPhoneのみの場合は、4.0が最適です。
  4. そのウィンドウを閉じます。
  5. メニューから、[プロジェクト]> [アクティブターゲットの編集 "YourTarget]を選択します
  6. [アーキテクチャ]> [ベースSDK]で、使用可能なデバイスまたはシミュレーターオプションの1つ(iPhone3.2またはiPhone4.0)を選択します。
  7. 以前のiOSバージョンをターゲットにする場合は、同じウィンドウで、[展開]> [iPhone OS展開ターゲット]で、サポートする最も低いバージョンを選択します。アプリストアを介した2.xバージョンのサポートは非​​推奨であることに注意してください。上記の「準備チェックリスト」の引用を参照してください。

Xcode4以降のベースSDKの場所

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

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

      プロジェクトナビゲーター           ビルド設定

(この回答は、Sherman Lo回答を少し変更したものです)

補遺

このトピックの詳細については、この質問の最初の回答にも記載されています。ここにはいくつかの役立つ情報もあります


3
プロジェクト設定項目が存在しないと思う私と同じくらい盲目の人のための簡単なメモ、それはプロジェクト>プロジェクト設定の編集です。
Lou Zell 2010

1
「(Appleから!)以前のXcodeバージョン(例:3.1.4:Leopard、Snow Leopard)をダウンロードしてインストールすることはできます。」そのリンクは実際には3.1.4ではなく3.1.3SDK用です。
リムーバー2010

皆さん:これはウィキなので、自分で修正してください。
粘土橋

2
ターゲット設定はプロジェクト設定を上書きすることに注意してください。両方の場所に設定する必要はありません。ターゲット設定で設定せず(存在する場合は削除して)、プロジェクト設定でのみ設定することをお勧めします。ところで:プロジェクト設定で設定する場合は、すべての構成が選択されていることを確認してください。(または、[全般]タブを使用して、[すべての構成のベースSDK]ポップアップから設定します)。
geowar 2010

1
この回答を更新して、新しい最新のSDKを含めることをお勧めします。
スティーブンフィッシャー

8

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


どうしてこれなの?xcodeを閉じて、設定変更のb / cだけをロードバックする必要があるのは奇妙に思えます:O
RyBolt 2011年

良い質問ですRyBolt、それでもそうです。Appleはどこかに何かをキャッシュしているに違いなく、リロードはそれをダンプしますが、それは単なる推測です。
ジョンスティーブン

5

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

正しいリンクと、古いiOS SDKを新しいXcodeインストールにインストールするための情報は、ChrisFletcherによるこのブログエントリからのものです。xcode3.2用のiphonesdk2.0.3.1のインストール方法を強くお勧めします。


良い情報、スティーブ。私の答えはコミュニティウィキだと思います。正しい情報で編集できる可能性があります。ありがとう。
クレイブリッジ

StackOverflowは初めてですが、サイトで他のユーザーが作成した投稿を編集できるようになるには、さらに「ポイント」が必要だと思います。UIには、投稿に対して「この投稿を編集する」と言う明確な方法がありません。ごめんなさい。
SteveCaine 2010年

3

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

オプション/ altドロップダウンをクリック

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.