fastlane自动化打包

Fastlane的优点

1、可以实现一键打包。当与fir、蒲公英、git等平台打通时,fastlane就可以简化很多操作,比如直接测试分发,提升工作效率。
2、fastlane提供好的扩展性

准备工作

1、安装xcode命令行工具。

xcode-select  --install 

如果没有安装,会弹出对话框,点击安装。

fastlane自动化打包_第1张图片
Snip20190716_24.png

如果提示 xcode-select: error: command line tools are already installed, use "Software Update" to install updates表示已经安装

2、安装Fastlane。

sudo gem install fastlane -NV 

安装完了执行fastlane --version,确认下是否安装完成和当前使用的版本号。

3、切换到工程目录初始化。

cd到你的项目目录执行

fastlane init

初始化的过程中会出现下面的选项:

fastlane自动化打包_第2张图片
Snip20190716_25.png

第一个选项的意思是:自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框(如果需要的话)
第二个选项的意思是:自动发布beta版本用于TestFlight
第二个选项的意思是:自动发布到AppStore
第二个选项的意思是:手动设置
我在这里选的是第四个(大家可根据自己需要选择)

成功之后,会在我们的工程目录会生成fastlane文件夹和Gymfile

脚本编写

1、fastlane目录。
  • Appfile 这里面是app账号和项目的bundle_id 的一些配置项
  • Fastfile 这主要是 脚本编译、打包和上传等
    如果选择了其他项初始化,还会有:
  • metadata 主要是App Store Connect 中的配置项,宣传文本、app名称、关键字、隐私网址、app的logo
    review_information 文件主要是 App 审核信息 的配置、账号、备注、联系方式
    trade_representative_contact_information 文件主要是 商务代表联系信息 的配置
  • screenshots 这个文件主要是各个尺寸屏幕的截图
  • Deliverfile 中为发布的配置信息,一般情况用不到。
2、编写lane脚本。

gym(别名:build_app或者build_ios_app)

  • configuration:指定打包方式,有Debug和Release,默认是Release
  • scheme:指定工程的scheme
  • clean:在构建前是否要clean,默认是false
  • output_directory:ipa文件应该存储的目录地址
  • output_name:生成ipa文件的名字
  • silent: 在构建时隐藏终端不必要输出的信息,默认是false
  • export_method:用于导出archive的方法。有效值是:appstore, ad-hoc, package, enterprise, development, developer-id
  • export_options:这里指定Xcode API的外部配置文件地址,或者配置hash
    如果有cocoapods,需要在Gemfile 中添加 gem "cocoapods"
    例如,手动打包lane:
platform :ios do
 #当前任务的描述
 desc "Description of what the lane does"
 #任务名称
 lane :dev do
   # add actions here: https://docs.fastlane.tools/actions
   # 使用了cocoapods
   cocoapods
   build_ios_app(
        silent: true,
        clean: true,
        scheme:"项目名称"
        export_method:"development",
        output_directory:"./build/")
 end
end
platform :ios do
 #当前任务的描述
 desc "Description of what the lane does"
 #任务名称
 lane :dev do
   # add actions here: https://docs.fastlane.tools/actions
   # 使用了cocoapods
   cocoapods
   build_ios_app(scheme:"项目名称",
   export_options: {
       provisioningProfiles: { 
         "com.example.bundleid" => "Provisioning Profile Nam"
       }
     })
 end
end

打包命令:

fastlane lane的名字

自动上传至Fir.im

执行如下命令安装fir插件:

fastlane add_plugin firim
gem install fir-cli
firim(firim_api_token:"token值")

自动上传至蒲公英

执行如下命令安装蒲公英插件:

fastlane add_plugin pgyer
  • api_key:蒲公英 app api_key
  • user_key:蒲公英 app user_key
pgyer(
    api_key: "[******]", 
    user_key: "[******]" )

使用 Fastlane 上传 App 到蒲公英

上传钉钉消息通知

  • api_key:app 下载链接
  • app_icon:app 图标链接
  • dingTalk_url:钉钉机器人 webhook,webhook值获得见链接
    钉钉自定义机器人

你可能感兴趣的:(fastlane自动化打包)