安装
1.确保ruby为最新版本
brew update
brew install ruby
2.安装fastlane
sudo gem install -n /usr/local/bin fastlane
使用
1. fastlane初始化及查询相关操作命令
// 查看当前fastlane版本
fastlane --version
// 查看所有action
fastlane actions
2. cd 到项目目录 对fastlane初始化
fastlane init
初始化完成后将生成fastlane文件夹 Fastfile 和 Appfile
3. fastlane的应用的相关配置
添加功能插件自动打包上传到蒲公英
在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。
fastlane add_plugin pgyer
配置Fastfile文件 打包上传蒲公英或打包上传App Store
default_platform(:ios)
platform :ios do
#build号自增处理配置
def updateProjectBuildNumber
currentTime = Time.new.strftime("%Y%m%d")
build = get_build_number()
if build.include?"#{currentTime}."
# => 为当天版本 计算迭代版本号
lastStr = build[build.length-2..build.length-1]
lastNum = lastStr.to_i
lastNum = lastNum + 1
lastStr = lastNum.to_s
if lastNum < 10
lastStr = lastStr.insert(0,"0")
end
build = "#{currentTime}.#{lastStr}"
else
# => 非当天版本 build 号重置
build = "#{currentTime}.01"
end
#打包上传蒲公英
lane :test do |options| #test为任务名
#increment_version_number(version_number: op[:vnum])#vnum 是参数名,命令行调用的时候输入的参数名,设置version版本
#increment_build_number(build_number: op[:bnum])#设置build版本
desc "development"
gym(
clean:true, #打包前clean项目
scheme: "shangshaban", #工程下要打包的项目,如果一个工程有多个项目则用[项目1,项目2]
configuration: "Debug",#环境
export_method: "development", #打包的方式, development/adhoc/enterprise/appstore
output_directory: './app', #指定ipa最后输出的目录
output_name:get_build_number()#输出ipa的文件名为当前的build号
)
pgyer(api_key: "03333328535943969b38f88ab462e30f", user_key: "2f1d029b10d34215a91182f3547259db", update_description: options[:desc])#上传到蒲公英
# firim(firim_api_token: [firim_api_token]) #上传到firim
end
desc "发布到AppStore"
lane :release do
# add actions here: https://docs.fastlane.tools/actions'
updateProjectBuildNumber
gym(
scheme:"shangshaban",
export_method:"app-store",
output_directory:"./build",
archive_path:"./Archive",
clean: true,
)
upload_to_app_store
#这个方法是上传项目到 appstore 的方法 下面有介绍 写这里就是执行完打包自定上传到 itunes connect
end
end
执行下面的命令分别上传到蒲公英 和 发布到AppStore
上传到蒲公英
fastlane test
发布到AppStore
fastlane release
常见错误解决方案
1.如果出现类似下面的错误, 则可能是ruby源问题, 可更换ruby源后重新安装
ERROR: 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)
复制代码更换ruby
源
// 官方https://gems.ruby-china.com/把org改成了com, 使用时注意替换
// 查看gem源
gem sources
// 删除默认的gem源
gem sources --remove https://gems.ruby-china.org/
// 增加gem源
gem sources -a https://gems.ruby-china.com/
// 查看当前的gem源
gem sources
// 清空源缓存
gem sources -c
// 更新源缓存
gem sources -u
2.fastlane 命令运行出现下面警告:
It seems like you wanted to load some plugins, however they couldn't be loaded Please follow the troubleshooting guide: https://docs.fastlane.tools/plugins/plugins-troubleshooting/
一般需要检查Gemfile和Pluginfile是否正常:
Gemfile:
默认为:
plugins_path = File.join(File.dirname(__FILE__), '.', 'Pluginfile')eval_gemfile(plugins_path) if File.exist?(plugins_path)
如果Pluginfile放在fastlane文件夹下改为:
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')eval_gemfile(plugins_path) if File.exist?(plugins_path)
Pluginfile:
gem 'fastlane-plugin-pgyer'