安装
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 "[email protected]" # 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/