iOS 使用 fastlane 实现自动打包上传App Store

如果图片失效可以到我的博客查看:fastlane 实现自动打包上传App Store

fastlane 自动化iOS打包上传

下一篇 使用fastlane自动截屏

安装 fastlane

安装fastlane之前,我们得安装ruby,因为fastlane使用ruby语言写的,安装ruby前,我们要先安装一个mac软件包管理工具。

1.安装HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/  master/install)"

2.安装完 更新到最新版: 执行 brew update 、之后更新包: brew upgrade

3.安装 ruby:

brew install ruby
查看版本: ruby -v                                                                                                                                       
我的版本:ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin16]

4.安装fastlane

sudo gem install fastlane -NV

查看版本:

[~] fastlane -v                                                                                                                                                                                                                   
fastlane installation at path:
/Users/xxxxx/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.84.0/bin/fastlane
-----------------------------
fastlane 2.84.0

安装成功就可以开始使用了: 具体使用文档可以查看Fastlane Doc 这里只是介绍自动化上传App Store 构建版本、以及自动提交 DSYM 文件到 Frabic crashlytics 上

使用 fastlane

在项目根目录执行: fastlane init 结果如下:


屏幕快照 2018-03-05 下午5.35.57

这四个选项的意思是:

  • 自动截屏。这个功能能帮我们自动截取APP中的截图,添加手机边框,我们这里不选择这个选项,因为我们的项目已经有图片了,不需要这里截屏。
  • 自动发布beta版本用于TestFlight
  • 自动的App Store发布包。我们的目标是要提交审核到APP Store,如果使用这个可以直接提交到 app store,期间可能出现让你输入你的 appid 账号密码,如果你的appid二级验证,你需要去官网生成一个专用密码输入
  • 自定义设置。(本文主讲)

这里选择 4 期间可能会报错忽略就好 一路 Enter
An error occurred while installing unf_ext (0.0.7.5), and Bundler cannot continue.


屏幕快照 2018-03-05 下午5.48.41

结束目录结构如下:


屏幕快照 2018-03-05 下午5.49.56

主要文件 Fastfile 打开


屏幕快照 2018-03-05 下午5.51.15

其实现在我们就可以运行了 ,执行 fastlane custom_lane
会看到 fastlane.tools finished successfully 表示执行成功了

打包

lane :build_app_store do
    # add actions here: https://docs.fastlane.tools/actions
    gym(
        scheme:"自己项目名字",
        export_method:"app-store",
        output_directory:"./fastlane/build",
        archive_path:"./Archive",
        clean: true,
        )

    # update_app_store 这个方法是上传项目到 appstore 的方法 下面有介绍 写这里就是执行完打包自定上传到 itunes connect
  end

scheme: 如果你使用第三方的库,如果你不指定会让你选择(肯定要选择自己App名字的)这里设置之后就不会再询问你了
export_method: ,'ad-hoc','app-store' 标记为什么版本
output_directory: 导出的目录

保存之后执行:

fastlane build_app_store 

执行结果在build 文件中生成 ipa、dSYM.zip


屏幕快照 2018-03-05 下午6.13.39

提交App Store审核

这里我们使用 deliver 工具

  • 执行 fastlane deliver 需要输入 appid、选择team、yourAppIdentifier
fastlane deliver
  • 修改 Fastfile 新写一个方法 这里名为 update_app_store
lane :update_app_store do
    increment_build_number
    # 编译代码
    gym(
        scheme:"自己项目名字",
        export_method:"app-store",
        )
    # 发布到 Apple Store
    deliver
  end
  • 主要说下这个 increment_build_number 字段 项目内部版本号(build 号) 这里是自增
    具体使用方法参见

使用自增需要在项目中设置自增


1520245848957
  • 现在就可以使用 fastlane update_app_store上传项目了
fastlane update_app_store

到此已经打包上传项目完成了

dSYM文件上传 Farbic 项目中使用 crashlytics 统计崩溃

在Fastfile 中新写一个方法


lane :update_to_crashlytics do

    upload_symbols_to_crashlytics(
        dsym_path: "./fastlane/build/PushupsApp.app.dSYM.zip",
        api_token: "你自己的appkey"
        )

  end

完整 Fastfile 文件


屏幕快照 2018-03-05 下午6.38.15

致辞今天分享已经结束

参考文档

官网文档

推荐阅读更多精彩内容