Fastlane自动化打包
2018-08-27 本文已影响29人
CowboyBebop
参考: https://blog.csdn.net/kuangdacaikuang/article/details/80443515,
https://docs.fastlane.tools
一,先安装Fastlane
安装fastlane,
sudo gem install fastlane --verbose
查看fastlane 版本
fastlane --version
二,创建demo工程
因为大多数项目,都会使用pod ,所以这样也是用了pod
image.png
三,初始化
-
1,cd 到项目目录下,fastlane init 之后会有4个选项
image.png
分别是截图,测试,上传App Store,手动设置,这里我们选择3,
image.png
然后输入开发者账号和密码。
可能你会遇到下面这样的错误
image.png
因为它默认的源是:https://rubygems.org,但是我本地的是https://gems.ruby-china.com,这个是因为上面的source 被墙了,就换成了下面那个,你可以在Gemfile文件里将它换成后面那个。
然后执行:bundle update,就行了。
四,安装其他插件
你可以选择上传到firm 或者蒲公英平台都可以,这里我选择是蒲公英。
- 1,安装蒲公英插件
bundle exec fastlane add_plugin pgyer
- 2,安装版本控制versioning插件
bundle exec fastlane add_plugin versioning
-3,安装版wait_xcrun插件
bundle exec fastlane add_plugin wait_xcrun
五,修改Fastfile 文件
image.png安装完了,我们可以看看fastlane 这个文件夹下面的文件,Appfile 是放APP ID的一些信息,Pluginfile 是插件的一些信息,metadata 是App Store 的一些元数据,screenshots 是放截图的,Fastfile 是我们真正要修改的文件
需要实现的功能:
1,buidl版本号自增,
2,拉取git提交记录作为蒲公英的上传描述,
3,邮件通知测试人员,
4,新建文件夹放导出的IPA 包
5,配置文件的更新:update_project_provisioning
# 1,版本自增,2,拉取git提交记录作为蒲公英的上传描述,3,邮件通知测试,4,新建文件夹放导出的IPA 包
default_platform(:ios)
platform :ios do
before_all do
puts "在打包之前"
# git_pull
cocoapods
end
after_all do
puts "打包完成,并上传蒲公英成功"
end
desc "build版本自增"
lane :build_number do
#fastlane add_plugin versioning
increment_build_number_in_plist
end
desc "上传到蒲公英,请用 fastlane beta desc:xxx "
lane :beta do |option|
changelog = option[:desc]
# 如果没有写描述,就拉取git最好一次commit 作为描述
if option[:git] == "y"
git_add(path: ".")
git_commit(path: ".", message:changelog)
push_to_git_remote
elsif changelog.nil?
changelog = last_git_commit[:message]
puts "changelog: #{changelog}"
else
end
#版本自增
increment_build_number_in_plist
#编译打包参数
# 项目名称
scheme_name = "FastlaneDemo"
# Debug 方法
configuration = "Debug"
# Info.plist的路径
plist_path = "./#{scheme_name}/Info.plist"
# version 版本号
version = get_info_plist_value(path: plist_path, key: "CFBundleShortVersionString")
# build 版本号
build = get_info_plist_value(path: plist_path, key: "CFBundleVersion")
# APP名称
app_name = get_info_plist_value(path: plist_path, key: "CFBundleDisplayName")
# IPA 的存放路径,如果项目用git 管理的,这个文件夹应该要忽略掉,
output_directory = "./IPA"
# 拼接出 ipa 包的名称,会根据打包方式,version版本号,build 版本号,当前打包时间拼接出包名
output_name = "#{scheme_name}_#{configuration}_#{version}_#{build}_#{Time.now.strftime('%Y%m%d%H%M')}.ipa"
#编译
gym(
scheme: scheme_name,
workspace: "#{scheme_name}.xcworkspace",
clean: true,
export_method:'ad-hoc',
configuration: configuration,
output_directory: output_directory,
output_name: output_name
)
# 这句会编译出 dsym 文件
# build_app(export_method: "ad-hoc")
#填上你在蒲公英后台的key
pgyer(api_key: "换上自己的key", user_key: "换上自己的key", update_description: changelog)
end
end
六,打包测试
fastlane beta desc:第一次打包测试
- 1,打包之前先执行pod install,我们需要在Gemfile 文件里加上
gem "cocoapods"
before_all do
puts "在打包之前"
# git_pull
cocoapods
end
image.png
-
2,打包成功
image.png - 3,还需要实现的功能:邮件通知测试人员,这个要用ruby 写请求。