3

我目前在独立服务器上使用Jenkins进行iOS持续集成。 Jenkins构建,测试并创建HTML链接,以便可以从临时设备(Continuous Delivery)下载应用程序。持续集成环境中的iOS App Store版本

每当我做一个App Store发布时,我就会得到我想要的构建代码,并且从中构建它。这提出了一个问题,因为虽然代码是相同的,但由于涉及两台不同的机器,二进制不能保证是相同的。

您通常会看到,在持续集成发布中,应该是非事件。这适用于我的日常构建,但是,在持续集成环境中制作App Store版本的最佳方法是什么?

回答

1

我最终在Jenkins中添加了一项只能建立.xcodearchive的新工作。该作业属于管道,是最后执行的任务。用于构建存档的命令是:

xcodebuild -scheme ${JK_SCHEMA_NAME} -archivePath ${JK_OUTPUT_DIR}/${JK_ARCHIVE_NAME} clean archive "CODE_SIGN_IDENTITY=${JK_CODE_SIGN_IDENTITY}" "GCC_PREPROCESSOR_DEFINITIONS=${GCC_PREPROCESSOR_DEFINITIONS} ${JK_GCC_PREPROCESSOR_DEFINITIONS}" "PROVISIONING_PROFILE=${JK_PROVISIONING_PROFILE_UDID}" 

这样我可以确保流动提供一个应用程序从提交到最终的二进制的商店是完全自动的(或至少不需要人工交互) 。版本号已正确设置,并且源代码或编译选项中没有任何更改可以更改上载到商店的最终归档。