xcodebuild的参数使用最新的sdk。

我使用ant exec任务来执行xcodebuild来构build一些iOS项目hudson。 我想能够创build脚本的方式,不允许指定sdk版本,因为在哈德逊奴隶或我的iOS项目上更新sdk所有我的项目失败….

在SDK中有一个很好的select,因为在目标设置Base SDK - Latest iOS 4.2

我不必在xcodebuild命令中提供-sdk参数,但是(我认为)它是从xcode项目中取得的,因为这样做会导致在提交期间有人可能会意外地从模拟器切换到设备。

我需要一些不变的东西。 我宁愿不使用envvariables,因为我希望能够在开发机器上运行这个ant任务,并且不想在所有机器上设置它。

不幸的是xcodebuild -showsdks只给出:

 Mac OS X SDKs: Mac OS X 10.4 -sdk macosx10.4 Mac OS X 10.5 -sdk macosx10.5 Mac OS X 10.6 -sdk macosx10.6 iOS SDKs: iOS 4.2 -sdk iphoneos4.2 iOS Simulator SDKs: Simulator - iOS 3.2 -sdk iphonesimulator3.2 Simulator - iOS 4.0 -sdk iphonesimulator4.0 Simulator - iOS 4.1 -sdk iphonesimulator4.1 Simulator - iOS 4.2 -sdk iphonesimulator4.2 

我需要像-sdk iphoneosLatest 。 我唯一的想法是用一些脚本xcodebuild -showsdks输出,但我不喜欢这个想法。

您可以使用xcodebuild和最新的SDK使用:

  • xcodebuild -sdk iphoneos ,用于Device
  • xcodebuild -sdk iphonesimulator ,用于模拟器。

我们将这些选项用于我们的自动构build,自从XCode 3.2.5以来一直在运行

我相信你可以使用xcodebuild -sdk iphoneos (没有版本号)来完成这个。

我试过@jenningj的解决scheme,它为我工作。 Maciek Sawicki,如果这对你有用,你应该将其标记为正确的解决scheme。

另外, xcodebuild -showsdk应该是xcodebuild -showsdks

你可以试试: xcodebuild -showsdks | grep -Eo "iphoneos([0-9]{1,}\.)+[0-9]{1,}" xcodebuild -showsdks | grep -Eo "iphoneos([0-9]{1,}\.)+[0-9]{1,}"