fastlane 持续集成第二篇

  • 最近在研究如何一键打多个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的调用ios

lane :Target1 do
  allTargets(scheme: 'Target1')
end

lane :Target2 do
  allTargets(scheme: 'Target2')
end

lane :Target3 do
  allTargets(scheme: 'Target3')
end
复制代码

下边是正式调用的方法git

lane :allTargets do
  allTargets(scheme: 'Target1')
  allTargets(scheme: 'Target2')
  allTargets(scheme: 'Target3')
end
复制代码

在命令行中执行fastlane allTargets,后边就是命令行里一直在执行打包的命令xcode

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

相关文章
相关标签/搜索