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

相關文章
相關標籤/搜索