iOS Fastlane 自动打包上传 fir.im
2019-01-15 本文已影响29人
redoca
iOS Fastlane 自动打包上传 fir.im
环境:
macOS 10.14.2
Xcode 10.1
fastlane 2.113.0
安装
确认 Xcode 命令行工具为最新版本:
xcode-select --install
fastlane 有多种安装方法。
建议采用 gem 安装方式:
sudo gem install fastlane -NV
brew 方法会有环境问题。最初我采用 brew cask install fastlane
,编译过程会提示部分库找不到。
安装插件:
fastlane add_plugin versioning
fastlane add_plugin firim
初始化
在项目根目录下:
fastlane init
提示:
- 自动化截图
- 将测试版分发自动化到TestFlight
- 自动上传、发布到App Store
- 手动设置 - 手动设置您的项目以使您的任务自动化
我们上传 firim 先择 4 即可
如果项目中使用 cocopods 需在Gemfile 文件中添加
gem 'cocoapods'
执行安装
bundle install
在项目根目录下 fastlane/Fastfile 中编辑内容如下:
lane :fir do
# 如果你用 pod install
cocoapods
# 如果你没有申请adhoc证书,sigh会自动帮你申请,并且添加到Xcode里
#sigh(adhoc: true)
# 以下两个action来自fastlane-plugin-versioning,
# 第一个递增 Build,第二个设定Version。
# 如果你有多个target,就必须指定target的值,否则它会直接找找到的第一个plist修改
increment_build_number_in_plist(target: 'XXXXX')
# 在这里我建议每一个打的包的Build都要不一样,这样crash了拿到日志,可以对应到ipa上
increment_version_number_in_plist(
target: 'XXXXX',
version_number: '1.0'
)
# gym用来编译ipa
gym(
scheme: 'xxxxxx',
export_method: "enterprise", # 指定打包方式
#teamID: "xxxxxx", # developer.apple.com 上查看
xcargs: "-allowProvisioningUpdates",
output_directory: './firim',
output_name: 'xxx.ipa'
)
# 上传ipa到fir.im服务器,在fir.im获取firim_api_token
firim(firim_api_token: "xxxxxx") # token 在fir 上查看。
end
打包上传
打包之前,先使用xcode的archive一下,保证项目可以运行起来.
然后执行以下命令即可:
fastlane fir
静等。。。功成
填坑
- lane: 后边千万别命名成 firim。。。 否则执行到 firim(firim_api_token: "xxxxxx") 会无限循环,重新打包。。。
- 因为我本地的 cocopods 版本 为 1.6.0.beta.2 ,与Gemfile中的版本不一至,会导致执行 fastlane fir 后更改 pod 文件,而 pod install 时又会改回来。对 git 版本管理极不友好。解决方案: 在 Gemfile 中指定 cocoapods 版本 :
gem 'cocoapods', '~> 1.6.0.beta.2'
。 可在此查看源版本 https://rubygems.org/