自动化流星/ Cordova应用程序签名

为什么?

手动部署会带来人为错误的风险,并阻止频繁发布。 因此,自动化应用程序部署是团队的宝贵补充。

我需要了解什么?

bash,Jenkins构建代理,应用程序签名过程。

怎么样?

假设我们使用docker进行了最低可行CI配置。 在构建后将添加一些步骤,以准备发布我们的移动应用程序。 您应该已经能够手动签名和构建.apk和.ipa文件。

安卓

自动化android是一件轻而易举的事,很少有问题,因为apk已经构建,只需要签名和压缩即可。

第2步:从1.4.0.1版本开始,流星不能为Android和iOS设置不同的包ID。 因此,如果像我们一样想要使用不同的包ID,则需要查找替换所有Android包ID的实例。 我正在使用npm replace工具,该工具已全局安装在构建代理上,它支持正则表达式,并且在bash脚本中读取效果很好。

步骤3:创建.xcarchive文件,并将其导出到.ipa。 这是大多数问题都会发生的地方。 您的项目可能还有其他配置选项。 在我们的案例中,添加本地cordova插件通常会导致非常奇怪的路径,可能需要修复。 无论您最近的配置更改如何,都可以使用git查看xcode项目中发生的更改,并使用bash进行相同的更改。

版本控制

良好的CI设置应支持可追溯性,因此应增加内部版本号以帮助识别应用程序来自哪个内部版本。 在以下脚本中,我们将获取最新提交的git哈希值,构建日期和Jenkins内部版本号,以提供调试的良好环境。

也可以使用“ cordova-plugin-appversion”来抓取它,并将其在应用程序中提供给用户查看。

我还建议添加一个设置全局变量的简单javascript文件。 这使我们能够检查热推送到设备的代码版本。

编辑mobile-config.js以设置应用程序版本,编辑version.js以影响可以被热代码推送到设备的文件

摘要

因此,到现在为止,我们应该已经准备好使用可以在应用程序和日志中显示的版本号来部署我们的移动应用程序。 我们正在使用fir-cli将这些内容发布到fir.im。 它是免费的,支持回滚和版本号,但有时可能会有些不稳定。

下次,通过尽可能多地记录客户端和服务器上未处理的异常并有效分析日志,调试生产的cordova应用程序。