8

xcodebuildコマンド ライン ツールを使用して iOS アプリをビルドしています。

Xcode45 -DP1をインストールすると、新しい Xcode45-DP1 アプリ バンドルの 6.0 SDK が自動的に使用され、アプリケーションがビルドされます。このアプリを AppStore に提出する際に 2 つの問題があります。

  1. アプリは、まだサポートされていない最新の SDK (6.0) で自動的にビルドされるようになったため、アプリを送信できません。解決策: 古い最新の SDK (5.1) を Xcode45-DP.app にコピーし、コマンド ラインで指定しました-sdk iphoneos5.1

  2. 2 つ目の問題は、ApplicationLoader がアプリを検証しているときに、サポートされていないバージョンの Xcode (45-DP1) から SDK が使用されていることを認識し、アプリのアップロードを拒否することです。解決策: 次のように、SDK の絶対パスを指定したいと思います。xcodebuild -sdk /path/to/5.1sdk...

問題は、xcodebuild が常に SDK "/path/to/iPhoneOS5.1.sdk/" が見つからないと言うことです。

SDKへの絶対パスを使用する方法と、それが指す必要があるファイル/ディレクトリについて経験のある人はいますか?

前もって感謝します。

4

1 に答える 1

5

私もしばらくこれを探していましたが、特定の SDK への完全な絶対パスを取得する直接的な方法はないようです。ただし、-sdkスイッチを-find-library任意のライブラリに設定し、最後のいくつかのパス部分を削除すると、次のように完全な sdk パスを取得できます。

[ 13:02 jon@MacBookPro ~ ]$ export SYS_ROOT=`xcodebuild -sdk iphoneos6.0 -find-library system`
[ 13:02 jon@MacBookPro ~ ]$ echo "${SYS_ROOT/\/usr\/lib\/libsystem.dylib/}"
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk

[ 13:02 jon@MacBookPro ~ ]$ export SYS_ROOT=`xcodebuild -sdk iphonesimulator6.0 -find-library system`
[ 13:02 jon@MacBookPro ~ ]$ echo "${SYS_ROOT/\/usr\/lib\/libsystem.dylib/}"
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk
于 2013-01-16T21:07:09.163 に答える