2012-06-21 13 views
6

我正在使用xcodebuild命令行工具來構建iOS應用程序。帶絕對路徑到SDK的xcodebuild命令

instaling Xcode45-DP1後,它會自動使用從構建應用程序的新Xcode45-DP1的應用程序包6.0 SDK。將此應用提交給AppStore時有兩個問題。

  1. 該應用現已自動與最新的SDK(6.0),這是注尚不支持內置,所以應用程序不能提交。 SOLUTION:我複製老電流SDK(5.1)至Xcode45-DP.app和在命令行中指定-sdk iphoneos5.1

  2. 第二個問題是當ApplicationLoader被驗證的應用程序,被認爲的是SDK是從不受支持的版本中使用Xcode(45-DP1)並拒絕上傳應用程序。 解決辦法:我想指定絕對路徑SDK,如:xcodebuild -sdk /path/to/5.1sdk...

的問題是,xcodebuild聯編總是說SDK「/path/to/iPhoneOS5.1.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