web-dev-qa-db-ja.com

古いBase SDKを使用したXcode 8

私は自分のプロジェクトで使用しているいくつかの外部フレームワークの互換性の問題に直面しています。 Xcode 8でBase SDKを変更する方法はありますか?現在、プロジェクト設定では、最新のSDKのみが表示されます。

古いSDKを別のバージョンのXcodeからここにコピーしようとしましたが、うまくいきませんでした。

/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

26
tonik12

Xcode 7.3以降では、SDKでのコピーに加えて、特定のInfo.plistファイル も編集する必要があります。これは、agx による投稿のmacOSについてここで説明します。 iOS用の同様のファイルがあるようです

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

そこのMinimumSDKVersionの値を10.0から必要なSDKバージョンに変更してみてください。

私はiOSでこれを試したことはありませんが、この回避策を使用して、Xcode 8.0(8A218a)(「GM」)を使用してmacOS 10.6でmacOSターゲットを構築することができました。

[〜#〜] update [〜#〜]

上記のハックはXcode 9で機能しなくなりました。Xcode9+を使用する場合は、2017年11月22日付の最新の回答を参照してください。

31
Jerry Krinock

私の元の答えは、Xcode 8で機能しましたが、説明する価値はありませんが、特定のクライアントの古いプロジェクトではXcode 9では機能しません。そのため、私は実際にそれほど悪くない代替ワークフローを使用しています。

このプロジェクトで作業するには、both必要なSDKでビルドできる古いXcodeと最近のXcodeで開きます。古いXcodeウィンドウをバックグラウンドに置き、最近のXcodeで作業を行います。変更をテストする準備ができたら、File>Save All⌥⌘S)、古いXcodeに切り替え、Build⌘B )。ビルドが完了したら、最近のXcodeに切り替えてProduct>Perform Action>ビルドなしで実行⌃⌘R) dSYMファイル形式は変更されていないため、ブレークポイントは期待どおりに機能します。

利点は、Xcodeのハッキングが不要であり、古いXcode(私の場合はXcode 3)について覚えておかなければならないことは、慈悲深く⌘Bであるということです。

1つの小さな警告:この特定のプロジェクトのターゲットでは、Build SettingsにカスタムBuild Products Path。これは、Macアプリが数年前に構築された方法の典型です。両方のXcodeが同じ製品で動作することを保証するために、古いXcodeと最近のXcodeがデフォルトBuild Products Pathを変更したバージョンにまたがる場合、設定が必要な場合がありますBuild Products Path

このワークフローは、おそらくxcodebuildおよびxcode-selectコマンドラインツールをスクリプト化することでさらに簡単になりますが、これで十分です。今年のWWDCで、今後2年間で32ビットMacアプリのサポートが廃止されるというAppleの発表により、私のクライアントはいずれにせよいくつかの厳しい決断を下しています。

7
Jerry Krinock

「展開ターゲット」設定を変更するだけです。基本的に、利用可能な最新のSDKをベースSDKとして使用しますが、ターゲットOS Xバージョンを選択します。もちろん、古いSDKを使用する理由によって異なりますか?

0
asdf