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.plistproject.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)。

建设愉快! 🏢