使用存档时忽略xcodebuild参数

use*_*927 7 continuous-integration organizer archive xcodebuild xcode4.2

我的名字是Luca,我目前正致力于iOS持续集成,使用shell脚本在xcode中构建应用程序以进行分发(Ad Hoc和App Store).

到目前为止,我使用IPA文件取得了良好的效果.我的问题来自App Store中的分发.要从脚本构建.app(传递一些参数),我会这样做:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc
Run Code Online (Sandbox Code Playgroud)

由于使用XCode 4.2,应用程序提交是使用XCode管理器窗口完成的,我必须能够存档我的可执行文件.

因此我修改了上一个命令行,如下所示:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc      **archive**
Run Code Online (Sandbox Code Playgroud)

不幸的是,在我这样做之后,似乎'archive'参数迫使xcodebuild忽略其他的(PRODUCT_NAME,TARGETED_DEVICE_FAMILY,....)并且我的输出是使用XCode预定义的构建设置构建的.

我希望能够通过xcodebuild传递参数并且有效,但"存档"操作似乎阻止了这一点.

我疯了,请帮忙:)

谢谢

And*_*rew 5

xcodebuild 的存档操作似乎在 Xcode 4.2 中存在错误通常,可以将项目配置的覆盖指定为命令行参数或通过-xcconfig参数。

尽管构建操作尊重它们,但存档却没有。(大概这是因为存档是一个在内部调用构建的元操作,但不会将选项传递给内部调用。)有一个 OpenRadar bug描述了这个问题,所以大概已经向 Apple 报告了。

最后,请注意,如果您要使用脚本中的存档操作,则不能依赖 xcodebuild 的退出代码。归档操作始终生成退出代码 0(按照惯例,成功)。要检测构建失败,您需要抓取输出。