ios - 将白标签应用程序的 fastlane 部署从本地计算机移至服务器/服务的最佳实践
问题描述
我们创建带有白标签的 iOS 和 Android 应用程序。它们都使用一个代码库(一个用于 iOS,一个用于 Android)。每当我们需要对我们所有的应用程序(> 100 个在 App Store 中的应用程序)进行更改时,我们都依赖于 Fastlane。我们有一个“批量”命令将每个新构建提交给 Apple,首先更改配置变量和一些文件,因此每个应用程序都是独一无二的。
这对我们来说效果很好......但是......它变得非常缓慢。我们希望能够利用一些持续开发服务。似乎它们不一定是为这个用例而设计的,但它可能仍然有效?
理想情况下,我们可以在类似 CircleCI 的东西上启动 100 个实例,而不是在本地机器上批量运行,它们都并排运行,使用我们的 fastlane 脚本构建、提交等。
我们首先研究了 CircleCI。我们遇到的问题是他们不允许将变量注入作业(https://ideas.circleci.com/ideas/CCI-I-690)。
有没有更好的服务来实现这个目标?有没有为实现这一目标而构建的工具?努力寻找一种替代方法来破解一堆较小的工具。
解决方案
我认为您已经确定了第一步:您将不得不拆分您的 fastlane(和其他工具)配置,因此可以单独构建每个应用程序。
然后,您可以为 CI 服务上的每个应用程序触发一个作业,例如 Travis CI 或 Azure Pipelines(两者都有一个简单的 API,可用于启动作业并为它们提供一些可用于您的作业的参数)构建和发布应用程序。
所有其他事情(例如,一个大构建与许多小构建步骤等)只是实现细节,将取决于您选择的单个服务或工具。
推荐阅读
- javascript - 使用 Reactjs 登录无法正常工作,因为他们说 Dispatch 不是函数
- java - 使用单元测试创建自定义迭代器
- c - 在c中将二进制int转换为二进制uint8_t
- c++ - 高级选择排序 - 在一次迭代中搜索两个元素
- apache-spark - 如何在 scala 中将 RDD[(int, string)] 转换为 Dataframe
- ios - MKMapview 作为覆盖
- bash - 在 Bash 中循环别名
- javascript - 在反应中保护路线?
- reactjs - 当使用 react-datetime、redux-form 和自定义输入时,该字段不会更新。知道为什么吗?
- javascript - 在 Java 中创建常见的 SQL 操作?