iOS框架+ Bitrise CI + Cocoapods

MoveUpwards / Sejima
iOS用户界面库。 通过在GitHub上创建一个帐户来为MoveUpwards / Sejima开发做出贡献。 github.com

为什么Bitrise CI优于其他CI替代品?

我们喜欢Bitrise CI的地方是他的工作流程设置。 与其他一些流行的解决方案相比,您可以提供.yml配置文件,也可以通过易于理解的界面(非常接近Apple Automator)定义要执行的过程。

即使Bitrise CI没有开源计划,您仍然可以免费使用它。 在这种情况下,您的工作流程将根据可用性在共享工作者上执行。 但是说实话,这从来不是我们需要的问题。

[edit]实际上,根据Bitrise CI团队的说法,他们确实有一个开源计划。

  • 选择“应用商店”导出方法,
  • 最后但并非最不重要的一点是,注册一个Webhook,以便在将代码推送到存储库时Bitrise CI可以自动开始构建。 Bitrise CI也将启动第一个工作流程。 如果构建失败,请不要担心,我们将根据需要自定义创建的工作流程。

自定义您的工作流程

返回您的信息中心,然后在可用的应用列表中选择您的应用,然后选择工作流程标签。

默认情况下,Bitrise CI创建的工作流程包含构建和交付iOS应用程序的最少步骤。 就我们而言,除非发布给Cocoapods,否则我们无需发布框架。

首先,让我们删除所有步骤, 以下步骤除外

  • 激活SSH密钥
  • Git克隆存储库

现在我们已经做了一些清理工作,让我们单击“ Git Clone Repository”步骤下面的“ +”按钮并搜索“ Recreate User Schemes”步骤并选择它,以添加交付过程所需的步骤。

通过以下步骤重复相同的操作:

  • 产生文字档
  • 脚本
  • 发送一条Slack消息(如果您正在使用Slack,否则应考虑使用它)

定制步骤

首先,我们将自定义“生成文本文件”步骤,以创建将在Cocoapods中继中推送的.podspec文件。

  • 首先提供您的podspec文件的名称
  • 在“文本文件的内容”字段中提供您的podspec内容

您可以使用Bitrise CI变量“ $ BITRISE_GIT_TAG”根据库发行版本自动定义Pod版本。

现在,让我们更新“脚本”步骤,以将我们的发行版发布到Cocoapods。

  • 在“脚本内容”中,添加cocoapods shell命令。 将podspec文件命名为与先前在“生成的文本文件”步骤中定义的名称相同。
  pod pod push Sejima.podspec --allow-warnings 

[注意]由于Cocoapods每台机器都有一个访问令牌,因此首先需要确保您已注册到Cocoapods中继并获取分配的访问令牌。 需要在Bitrise CI中将其定义为自定义“ Env变量”。

Cocoapods访问令牌

打开您喜欢的终端,然后键入以下命令:

  pod pod注册your@email.com --description ='Bitrise CI' 

您将收到一封电子邮件进行验证。 单击Cocoapods电子邮件中的可用链接后,在终端中键入以下命令:

  grep -A2'trunk.cocoapods.org'〜/ .netrc 

该命令会将当前登录的帐户打印到Cocoapods中继

 机器trunk.cocoapods.org 
登录your@email.com
密码xxxxxxxxxxxxxxxxxxxxxxxx

您需要复制密码值并将其添加到Bitrise CI“ Env Variable”中。 因此,点击“ $ Env Vars”标签,然后点击“添加新按钮”

  • 在关键字段中输入“ COCOAPODS_TRUNK_TOKEN”
  • 将您的密码粘贴到“值”字段中

现在,您的工作流程设置已完成,您可以对其进行重命名。

让我们配置触发器

本文的目的是提供将框架交付给Cocoapods的步骤,因此我们不介绍用于执行单元测试或将其交付给Testflight或最终用户的其他平台的工作流。

因此,首先删除“ PUSH”和“ PULL REQUEST”的触发器,然后切换到“ TAG”以根据您的发布添加触发器。

等等!

[附加组件]使用松弛功能,可以在工作流程成功完成时发布消息。