【问题标题】:iOS App Store Releases in Continuous Integration Environment持续集成环境中的 iOS App Store 发布
【发布时间】:2013-10-07 06:58:51
【问题描述】:
我目前在独立服务器上使用 Jenkins 进行 iOS 持续集成。 Jenkins 构建、测试和创建 HTML 链接,以便可以从临时设备下载应用程序(持续交付)。
每当我发布 App Store 版本时,我都会获得我想要的构建代码,然后我会根据它进行构建。这带来了一个问题,因为虽然代码相同,但由于涉及到两台不同的机器,因此不能保证二进制文件相同。
您通常会读到,在持续集成中发布应该是非事件。这适用于我的日常构建,但是,在持续集成环境中发布 App Store 的最佳方法是什么?
【问题讨论】:
标签:
ios
jenkins
continuous-integration
continuous-deployment
continuous-delivery
【解决方案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}"
通过这种方式,我可以确保将应用程序从提交到最终二进制文件的交付流程完全自动化(或者至少不需要人工交互)。版本号设置正确,源代码或编译选项没有任何更改会改变上传到商店的最终存档。