iOS Fastlane 自动打包上传 fir.im

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

提示:

  1. 自动化截图
  2. 将测试版分发自动化到TestFlight
  3. 自动上传、发布到App Store
  4. 手动设置 - 手动设置您的项目以使您的任务自动化

我们上传 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/

你可能感兴趣的:(iOS Fastlane 自动打包上传 fir.im)