带有SDK绝对路径的xcodebuild命令

时间:2012-06-21 08:08:21

标签: ios xcode command-line sdk xcodebuild

我正在使用 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. 第二个问题是,当ApplicationLoader正在验证应用程序时,会看到从不受支持的Xcode版本(45-DP1)使用SDK并拒绝上传应用程序。 解决方案:我想指定SDK的绝对路径,例如:xcodebuild -sdk /path/to/5.1sdk...

  3. 问题是xcodebuild总是说无法找到SDK“/path/to/iPhoneOS5.1.sdk/”。

    有没有人有过如何使用sdk的绝对路径以及它应该指向哪个文件/目录的经验?

    提前致谢。

1 个答案:

答案 0 :(得分:4)

我一直在搜索这个问题,但似乎没有直接的方法来获得特定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
相关问题