- 最近在研究如何一键打多个ipa包,网上查了很多资料,没有查到,就自己试了试,首先打一个ipa,上篇文章已经讲过,如果需要可以看上一篇,打多个ipa需要用到fastlane的match证书管理功能。
- 这里简单介绍一下match,match是用代码创建苹果的证书、描述性文件,可以指定git仓库,然后团队成员只要去更新git仓库的证书就可以了,不用像以前一样,还要倒入创建者的p12文件,方便多人维护证书
- 项目需要是多target,在一个工程内,可以一键打多个包,例如下图这种工程
先写好一个公共的打包方法,allTargets是方法名,options是参数,可以传需要打包的target名字,provisioningProfiles里边需要设置每个target对应的描述性文件名字
lane :allTargets do |options|
scheme_name = options[:scheme]
increment_version_number_in_plist(
version_number: '1.0.0',
scheme: scheme_name
)
increment_build_number_in_plist(
build_number: 1
)
version = get_version_number(xcodeproj: ENV['XCODEPROJ_NAME'], target: scheme_name)
output_name = "#{scheme_name}-V#{version}.ipa"
build_ios_app(
scheme: scheme_name,
export_method: 'ad-hoc',
output_directory: "./build",
output_name: output_name,
export_options: {
provisioningProfiles: {
"target的bundleid" => "provisioning profile",
"target的bundleid" => "provisioning profile",
"target的bundleid" => "provisioning profile",
}
}
)
end
下边写好每个target的调用
lane :Target1 do
allTargets(scheme: 'Target1')
end
lane :Target2 do
allTargets(scheme: 'Target2')
end
lane :Target3 do
allTargets(scheme: 'Target3')
end
下边是正式调用的方法
lane :allTargets do
allTargets(scheme: 'Target1')
allTargets(scheme: 'Target2')
allTargets(scheme: 'Target3')
end
在命令行中执行fastlane allTargets,后边就是命令行里一直在执行打包的命令


大约过了50分钟,所有包打完了,共30个ipa,平均一个ipa耗时2.5分钟,如果是手动打包......我想没有人愿意用xcode去一次一次的点击archive