使用归档时xcodebuild参数被忽略

我的名字是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

由于使用XCode 4.2,应用程序提交使用XCode Organizer窗口完成,我必须也能够将我的可执行文件存档。

因此我修改了前面的命令行如下:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc      **archive**

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

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

我疯了,请帮助:)

谢谢


xcodebuild的归档操作似乎在Xcode 4.2中有一个bug。 通常可以将项目配置的覆盖指定为命令行参数或通过-xcconfig参数。

虽然构建操作对它们表示尊重,但归档不会。 (大概这是因为归档是一种内部调用构建的元动作,但不会将选项传递给内部调用。)有一个OpenRadar错误描述了这个问题,所以据推测它已经向Apple报告。

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


我遇到了同样的问题。 我目前的解决方法基本上是删除其他配置,以便存档被迫使用你想要的。 不是真的可以通过命令行完成的解决方案,希望Apple能够解决这个明显的问题。


这对原始海报来说可能太晚了,但可能会帮助其他人。 对于我的构建过程,我使用xcodebuild进行第一次清理然后构建,然后使用xcrun创建存档:

 /usr/bin/xcrun -sdk iphoneos PackageApplication -v "build/<Path_to_build_dir>/<App_Name>.app" -o "<Path_to_archive_output>.ipa" --sign "<signing identity>" --embed "<path to provision profile>.mobileprovision"

通过这个命令,我可以为应用商店创建一个存档,甚至可以像这样将临时构建上传到TestFlight:

curl http://testflightapp.com/api/builds.json 
    -F file="<path to archive>" 
    -F api_token='<api token>' 
    -F team_token='<team token>' 
    -F notes='Automated build'  
    -F notify=True 
    -F distribution_lists='me'

这适用于xcode 6.1

链接地址: http://www.djcxy.com/p/10257.html

上一篇: xcodebuild arguments ignored when using archive

下一篇: Configuring Pylint for Django projects