2012-06-21 24 views
6

私はxcodebuildコマンドラインツールを使用してiOSアプリケーションを構築しています。SDKへの絶対パスを指定したxcodebuildコマンド

Xcode45-DP1のインストール後、新しいXcode45-DP1アプリケーションバンドルから6.0 SDKを自動的に使用してアプリケーションを構築します。このアプリをAppStoreに送信するときに2つの問題があります。

  1. アプリは自動的に最新のSDK(6.0)でビルドされていますが、まだサポートされていないため、アプリを提出できません。 SOLUTION:私はXcode45-DP.appに古い現在のSDK(5.1)にコピーし、コマンドラインで-sdk iphoneos5.1

  2. 第二の問題は、ApplicationLoaderアプリを検証する際に、SDKがサポートされていないバージョンのから使用されていることを認識していることである指定しましたXcode(45-DP1)にアップロードし、アプリのアップロードを拒否します。 SOLUTION:問題はxcodebuildは常にSDK「/path/to/iPhoneOS5.1.sdk/」は配置できないと言うことですxcodebuild -sdk /path/to/5.1sdk...

:私はのように、SDKの絶対パスを指定したいと思います。

誰かがsdkの絶対パスをどのように使用するのか、どのファイル/ディレクトリを指しているのでしょうか?

ありがとうございます。

+0

を私はあなたが*電流を使用する必要があると思います*開発者のプレビューではなく、あなたのアプリを提出するXcodeのバージョン。とにかく開発者のプレビューを使用する必要があるのはなぜですか? – trojanfoe

+0

4.5 DP1もNDAの対象ですか?これについてAppleの開発者フォーラムで質問してください。 – petert

+0

これは絶対に真です。私はアプリケーションをビルドするのに4.5 DP1を使いたくないのですが、コマンドラインからxcodebuildを実行するときにデフォルトでそれを使用するので、5.1SDKをコピーしようとしました。私も古いCommandLineToolsをインストールしようとしましたが、それは役に立たなかった。 –

答えて

4

これもしばらく検索していますが、特定のSDKの完全な絶対パスを取得する直接的な方法はありません。あなたは、任意のライブラリ用-sdkスイッチと-find-libraryを設定し、そのような完全なSDKのパスを取得することができ、最後の数のパス部分を取り除く場合は、:

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

[ 13:02 [email protected] ~ ]$ export SYS_ROOT=`xcodebuild -sdk iphonesimulator6.0 -find-library system` 
[ 13:02 [email protected] ~ ]$ echo "${SYS_ROOT/\/usr\/lib\/libsystem.dylib/}" 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk 
+4

SYS_ROOTパスは、 "xcrun --sdk iphoneos --show-sdk-path"と "xcrun --sdk iphonesimulator --show-sdk-path"のように取得することもできます。 – neoneye

+1

上記のneoneyeのコメントの答えははるかに効率的で信頼性が高いです。ありがとう – michaK

関連する問題