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”以根据您的发布添加触发器。
等等!
[附加组件]使用松弛功能,可以在工作流程成功完成时发布消息。
- 与Xcode 6和(可能)cocoapodsbuild立错误
- FIRApp链接器错误
- CocoaPods UIImageView + AFNetworking.h无法识别的select器setImageWithURLRequest
- Integarte /将cocoapods安装到现有的xcode项目,objective-c或swift
- 使用Cocoapods构build静态库时,防止出现重复的符号
- 函数'FBSDK_NOT_DESIGNATED_INITIALIZER'的隐式声明在C99 Expected')'中是无效的
- 修改xcode中的现有窗格
- CocoaPods 1.7.0将引入增量Pod安装
- CocoaPod / Podspec和* .framework