iOS 6.1 SDK を必要とするプロジェクトがあり、XCode5 にアップグレードしましたが、ビルド設定 -> ベース SDK に iOS 6.1 SDK が表示されません。以前の SDK を個別に保存し、コピーして /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs ディレクトリに貼り付けてみました。しかし、ビルド設定 -> ベース SDK には表示されません。Xcode 5 で複数の SDK を使用するにはどうすればよいですか?
3 に答える
XCode の更新ごとに以前の SDK が削除されないようにするには、直接コピーして貼り付けるのではなく、シンボリック リンクを使用する必要があります。
1.ターミナルを開き、以下に示すように次の SDK ディレクトリに移動します。
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
2.SDK 6.1 または目的の以前の SDK を、将来の XCode の更新後に削除されないドキュメントまたはその他のディレクトリに貼り付けます。SDK をそのディレクトリに配置したら、次のコマンドを使用してシンボリック リンクを作成します。(簡単にするために、SDK 6.1 を Documents ディレクトリに配置しました)
sudo ln -s /Users/.../Documents/iPhoneOS6.1.sdk .
注: コマンドの後にスペースとドットを追加することを忘れないでください。
削除された回答からのコメントで、次のように述べました。
7.0 SDK を使用すると、iOS7 のアプリであらゆる種類の奇妙なレンダリングの問題が発生し、すぐに修正する時間がありませんでした
ここでの問題は理解できますが、トロイの木馬に同意することを言わざるを得ません。そのベスト プラクティスは、実際には最新の SDK を使用する必要がありますが、ビジネス要件で要求される以前の iOS バージョンも自由にサポートすることです。したがって、理想的には、次のことを行う必要があります。
アプリの最小展開ターゲットを、サポートする必要がある iOS の最も古いバージョンに設定します。
明らかに、アプリの最小の "デプロイ ターゲット" から最新の iOS バージョンまで、さまざまな iOS バージョンをサポートするコードを記述します。これには、iOS アプリ プログラミング ガイドのiOS の複数バージョンのサポートにリストされている通常の手法が含まれます。つまり、次のとおりです。
最も初期の展開ターゲットでサポートされていない可能性のあるフレームワークの弱いリンク。
クラスの存在を実行時にチェックします。
respondsToSelector
サポートしている iOS のすべてのバージョンで使用できないメソッドのランタイム チェック。等
次に、以前の iOS バージョンのシミュレーターでテストする場合は、スキーム メニューで、対象の iOS バージョンを選択します。
明らかに、まだ古い iOS バージョン (もちろん、最新の iOS バージョンも) を実行している物理デバイスでもテストする必要があります。ただし、シミュレーターを使用すると、アプリを以前の iOS バージョンと比較してすばやく実行し、下位互換性を維持することができます。
私はこのアプローチに関するあなたの懸念を理解しており、これがあなたのためではないかもしれないことを理解しています.
xCode 5 で以前の SDK を使用する場合は、以前の SDK を contents->developer->patforms->iPhoneOS.platform にコピーしてから、xCode を再起動します。xCode5 コンテンツを開いてそこに貼り付けていることを確認してください。