如何使用Fastlane和Bitrise为多个iOS和tvOS应用设置CI

最近,我不得不为多个版本的iOS和tvOS应用程序设置一个持续集成(CI)管道。 由于没有找到有关如何以简单方式执行此操作的大量信息,因此决定撰写此博客文章。

用例

如果您有以下内容,则此帖子很有用:

  • 白标应用程序(WLA),其中包含同一应用程序的多个变体;
  • 针对多个平台的应用程序(iOS / tvOS / macOS);

而且,您不想在CI管道中重复或在管道中定义环境变量。

就我而言,我有一个通用应用程序(iOS和tvOS)两个版本(精简版和高级版),因此共有四个版本。

工具类

我使用Fastlane工具来自动化部署应用程序所需的任务。

像所有工具一样,它也有优点和缺点。

优点

  • 您的管道不依赖于任何特定服务;
  • 它可以在本地,服务或远程计算机中运行;
  • 它取决于一个开源项目;

缺点

  • 您需要时间进行配置;
  • 您需要时间来维护它;

如果您不熟悉Fastlane,请参阅其文档。

快速通道配置

阅读fastlane的文档,使用环境变量似乎最适合我的用例。

为了为应用程序的每个版本加载不同的变量,您需要为每个版本定义一个文件。

在我的情况下,我用以下名称定义了4个文件:

  • .env.ios
  • .env.iosfree
  • .env.tvos
  • .env.tvosfree

每个文件都包含构建特定版本的应用程序所需的变量:

还需要设置Secrets以构建应用程序(FASTLANE_USER,FASTLANE_APPLE_ID,FASTLANE_PASSWORD),并验证在我的情况下选择的正确堆栈是macOS 10.13上的Xcode9.3.x。

如果您还想使用Bitrise,并且此帖子对您有所帮助,请使用我的推荐链接,以便我可以赢得Bitrise T恤😄。

结论

在此博文中,我们看到了如何使用Fastlane和Bitrise为不同平台,iOS和tvOS自动部署同一应用程序的多个版本。