Bitrise上的Whitelabel应用
使用相同的代码库创建几个不同的应用程序,并在Bitrise上自动化其构建,测试和部署。
自由软件开发人员 Felipe Oliveira 分享了他在Bitrise上处理whitelabel应用程序的经验,他过去使用Bitrise成功地实现了以下两种方法。
通过这种方法,大约可以生成30个应用程序。 即使需要维护很多应用程序,它仍然是可管理的。
在此工作流程中,我们具有用于构建多个不同iOS目标 的相同项目 。 每个目标都有自己的Info.plist,图标和图像,但是所有对象的主要代码都相同。
每个目标都有一个Bitrise应用程序 。 工作流程设置了一些环境变量,例如目标名称,目标应用程序ID和iTunes凭据。
之后,我们从存储库中运行常见步骤。 所有目标的bitrise.yml
文件都是相同的,并且这些步骤使用环境变量来构建应用程序并将其提交到商店。
也有
我们用于处理内部版本号的Web服务 。 我们有一个脚本步骤,调用我们的服务,发送目标ID,并接收我们注入目标Info.plist文件中的版本号。 这使我们可以从服务器单独控制每个Target的版本。
还有一个重要步骤: 签名和证书。 我们使用“ Bitrise Certificate Install
步骤安装分发证书,但不安装配置文件。 我们的每个目标都有一个主要的iOS应用,一个Watch应用和一个Notification Extension,这意味着我们需要为每个目标维护6个配置文件。
我没有将它们全部6个上传到每个Bitrise应用程序中,而是将它们全部压缩并添加到存储库中。 我们有一个脚本步骤,用于解压缩该文件并复制/安装构建当前目标所需的文件。
这是我们的工作流程:
- Set environment variables for the target;
- Run the Bitrise.yml from the repo;
- Get Build Version Number from the servers;
- Install Provision Profiles from zip file inside the repo;
- Build and Archive the binary;
- Upload to iTunes Connect;
这些应用程序比第一个更加复杂,白色标签生成了300多个应用程序。 这就是为什么不可能为每个应用程序维护一个目标的原因。
在此工作流程中,我们只有一个iOS目标,而Bitrise工作流程使用脚本将正确的值注入 Info.plist
和project.pbxproj
文件中。
第一步是从Web服务获取应用程序的信息(捆绑ID,应用程序ID,应用程序名称,版本等)。 对于带有白色标签的每个应用程序,它们将从服务器的json列表中返回。
然后将这些值注入到正确的文件中(在存档开始之前,正确的文件(捆绑ID,版本号已在Info.plist等中替换))。 我们还将复制从服务器下载的图标,徽标和所有图像,并将它们移至项目中的正确文件夹。
构建之前的最后一步是从服务器复制证书和配置文件并安装它们,以便Bitrise可以存档和上传。 我们使用手动签名 ,因此我们需要在项目文件中更改签名值。
工作流程如下:
- Get json list of apps from the server;
- For each app in the list, we run the steps:
- Clone the repo;
- Inject the values in the Info.plist;
- Download the icons and images from the server and move to the right project location;
- Download and install the certificates and provision profiles;
- Build, Archive and Submit;
您是否以其他方式创建whitelabel应用程序? 通过现场聊天在评论中让我们知道,或给我们几行(letsconnect@bitrise.io)。
建设愉快! 🏢