flow.ci初体验

一个好用的持续构建平台对于移动开发团队来讲非常重要,flow.ci提供了以SaaS的方式提供了简单易用的持续构建的方法,所以我简单尝试了一下如何打包及将包同步到fir.im上面。

flow.ci支持很多代码托管网站,其中当然包括github。通过github授权之后,就可以基于github上的项目创建flow.ci的项目。

flow.ci初体验_第1张图片
image.png

iOS的构建环境目前只有Xcode 8可供选择。这里比较坑的是Xcode8位于/Applications/Xcode8.app/目录,而有一些Swift modulemap会依赖/Applications/Xcode.app/目录下的文件,这样就会导致编译失败。比如SQLite.swift组件的modulemap就是这样的,它的README也要求Xcode的目录一定是/Applications/Xcode.app/

$ cat ./CocoaPods/iphoneos/module.modulemap
module CSQLite [system] {
    header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/sqlite3.h"
    export *
}

为了解决这个问题,我在编译之前加了一个脚本,专门把modulemap文件里面的/Applications/Xcode.app/替换成/Applications/Xcode8.app/。Mac的sed略坑。

sed -i .org 's#Xcode.app#Xcode8.app#' Pods/SQLite.swift/CocoaPods/*/module.modulemap
flow.ci初体验_第2张图片
image.png

打包的时候需要配置好FLOW_IOS_COMPILE_WORKSPACEFLOW_IOS_COMPILE_SCHEME。因为没有企业证书,我选择打一个App Store包。上传打包证书和provision profile也是一件非常轻松的事情。记得在Xcode里面要关闭Automatically manage signing,这个选项默认都是开着的。

flow.ci初体验_第3张图片
image.png
flow.ci初体验_第4张图片
image.png
flow.ci初体验_第5张图片
image.png

打完包之后可以将ipa上传到fir.im,所以在工作流里面增加一个上传的环节。

flow.ci初体验_第6张图片
image.png
image.png
flow.ci初体验_第7张图片
image.png

flow.ci的UI和交互都非常棒,因为可以定制工作流,所以可玩性相当高。通过添加system_profiler SPHardwareDataType命令可知flow.ci用的是Mac mini。

flow.ci初体验_第8张图片
image.png

参考文章

  1. 为 iOS 建立 Travis CI
  2. iOS 持续集成 --Travis CI + Fir.im 自动编译发布

你可能感兴趣的:(flow.ci初体验)