fastlane一步一步实现从安装到自动打包(最新)

安装

1、安装xcode命令行工具
xcode-select --install

出现上图说明已经安装,否则会安装

2、安装Fastlane
# Using RubyGems
sudo gem install fastlane -NV
或者
# Alternatively using Homebrew
brew cask install fastlane
· 我是通过:sudo gem install fastlane -NV

可能会报如下错误:

Could not find a valid gem 'fastlane' (>= 0), here is why:
          Unable to download data from https://gems.ruby-china.org/ - bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)

错误原因:

查看gem源

gem sources
PS:好像是对的,但是点击去这个地址:https://gems.ruby-china.org/发现
所以需要跟换源

删除之前的源

gem sources --remove https://gems.ruby-china.org/

增加新的源

gem sources -a https://gems.ruby-china.com

查看源:

然后再执行:

sudo gem install fastlane -NV

安装成功

如果报错:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/commander
解决:
sudo gem install -n /usr/local/bin fastlane 

使用

1、fastlane init
cd 到项目根目录
执行fastlane init
2、然后到下图:这里会弹出四个选项,问你想要用Fastlane做什么? 这里我选的是3;

如果你的工程是用cocoapods的那么可能会提示让你勾选工程的Scheme;
步骤就是打开你的xcode,
点击Manage Schemes,
找到你的项目Scheme,在后面的多选框中进行勾选,
然后可以手动删除 fastlane文件夹,重新fastlane init一下。

1. 📸  Automate screenshots
2. 👩‍✈️  Automate beta distribution to TestFlight (自动testfilght型配置)
3. 🚀  Automate App Store distribution (自动发布型配置)
4. 🛠  Manual setup - manually setup your project to automate your (需要手动配置内容)
3、因为是上线,所以选择1
4、登录Apple ID Username
PS:这个时候可能会报错:Service key is empty
解决:

1、 访问appleid.apple.com/account/manage
会让你登录,回答密保问题

2、添加凭据

fastlane fastlane-credentials add --username 拼接你的id
输入密码

3、更新gem源,按照我上面的做法,你已经替换了最新的gem源了哦,所以执行下面代码即可解决

sudo gem install fastlane
5、Manage app metadata

成功后生成系列文件

6、配置文件(主要是Fastflie 和 Deiverfile)
Fastflie

刚创建好的如下图:

改写为

efault_platform(:ios)

platform :ios do
  desc "自定义lane"
  lane :qqhl_release do
     #increment_build_number
  #2.1编译 选择scheme和功能
    gym(
      scheme: "317hu",
      workspace: "317hu.xcworkspace",
      include_bitcode: false
      )

    deliver(
    #2.2上传appstore
      force: true,
      # skip_metadata: true,
      skip_screenshots: true,
      skip_binary_upload: false,
      submit_for_review: true,
      automatic_release: true,
      price_tier: 0
      )
  end
end

如果想实现“一键审核”可以给deliver带上参数submit_for_review。这样就真正实现了一键提交App Store审核。如上图

如果设置了自动升级bulid版本号increment_build_number,increment_build_number的作用是防止本地版本的build号比App Store(或上次)低而做的自动增长版本号的处理,工程属性需要如下设置

Deiverfile:这个主要写下更新说明,以及是否有广告标识之类设置
app_identifier "com.bozhong.jsrmyy" # The bundle identifier of your app
# 2 用户名,Apple ID电子邮件地址
username "hyc@qqhl.me" # your Apple ID user
# 3 提交审核信息
submission_information({    
  export_compliance_encryption_updated: false,
  export_compliance_uses_encryption: false,
  content_rights_contains_third_party_content: false,
  add_id_info_uses_idfa: true,
  add_id_info_serves_ads: true,
  add_id_info_limits_tracking: true
})
#4 更新说明
release_notes({
  'zh-Hans' => "1.部分页面优化;
  2.修复已知bug;"
})
7、打包上传
cd到项目根目录,执行
fastlane 函数名(在Fastflie中)
#######例如我的
fastlane qqhl_release
成功

参考:
https://github.com/fastlane/fastlane/tree/master/credentials_manager
https://docs.fastlane.tools/best-practices/continuous-integration/#use-of-application-specific-passwords-and-spaceauth
https://www.jianshu.com/p/19ae8cc865b0
https://www.jianshu.com/p/baa8ef99795d
https://www.jianshu.com/p/5d836e89d9d1
fastlane: 解决使用了submit_for_review无法成功提交审核
https://docs.fastlane.tools/

推荐阅读更多精彩内容