iOS自動化打包
14c1314d6a341c5b3bbf287fe87f7e09.jpg
前言
通常打包步驟:
- 修改環(huán)境變量(
main.cfg
,qlconfig.js
)购披,不同環(huán)境還要切換bundle id
,切換證書等杖挣。 - Archive
- 修改名稱,上傳svn
使用自動化打包之后刚陡,這些操作只需要一步就能完成惩妇。后續(xù)搭建好了Jenkins
自動化部署后,從打包到上傳svn到發(fā)布郵件都只需要一步筐乳。
環(huán)境配置
1.新建Build Configuration
Configuration
系統(tǒng)默認是2個歌殃,一個Debug
,一個Release
蝙云。
F80E7354-0991-477B-AABC-CEC5B4B093E1.png
我們在這兒新建一個
Production
用于生產(chǎn)氓皱。
2. 新建Scheme
我們每一個券商對應(yīng)一個scheme,每一個券商都新建兩個scheme來對應(yīng)正式和生產(chǎn)贮懈。
F3163DD8-215F-4376-9CA1-226406BC463A.png
將run和archive模式也改為對應(yīng)的
configuration
6B34FF0B-85F7-49DF-9EF4-B6DC424D3732.png
3. build setting 修改
bundle id
和 證書 都在build setting
中根據(jù)configuration
修改成對應(yīng)的內(nèi)容匀泊。
FE5C9514-22D3-49B5-B74B-51DA59FB23B3.png
4. 配置和獲取環(huán)境變量
使用GCC預(yù)編譯頭參數(shù)GCC_PREPROCESSOR_DEFINITIONS
3D3BBC58-0C57-4B95-AA42-E527700D3BFC.png
之前區(qū)分正式測試用的
main.cfg
文件中的isProduct
字段,現(xiàn)在區(qū)分正式通過代碼中判斷DEBUG
朵你,RELEASE
和PRODUCTION
來區(qū)分正式測試各聘。
之前qlconfig每次都需要根據(jù)券商修改。
自動化打包
基本原理抡医,使用xcode-build
命令
fastlane
- 找到fastfile 看有哪些命令
- 民生為例躲因,cd 到目錄,fastlane minsheng_t
platform :ios do
# ----------------------- 打包內(nèi)測.ipa文件 -----------------------
lane :minsheng_t do|options|
branch = options[:branch]
puts "*************| 開始打包.ipa文件... |*************"
# 更新項目build號
# updateProjectBuildNumber
# 開始打包
gym(
# 指定輸出的ipa名稱
output_name:"#{project_ad_scheme}_#{get_build_number()}",
# 指定項目的scheme
scheme:"#{project_ad_scheme}",
# 是否清空以前的編譯信息 true:是
clean:true,
# 指定打包方式忌傻,Release 或者 Debug
configuration:"Debug",
# 指定打包方式大脉,目前支持app-store, package, ad-hoc, enterprise, development
# 注:由于使用手動配置證書,在export_options指定打包方式
#export_method:"#{ipa_exportMethod}",
# 指定輸出文件夾
output_directory:"#{ipa_outputDirectory}",
# Xcode9將不會允許你訪問鑰匙串里的內(nèi)容水孩,除非設(shè)置allowProvisioningUpdates
export_xcargs:"-allowProvisioningUpdates",
# 隱藏沒有必要的信息
silent:true,
# 手動配置證書,注意打包方式需在export_options內(nèi)使用method設(shè)置镰矿,不可使用export_method
export_options: {
method:"#{ipa_exportMethod}",
provisioningProfiles: {
"#{project_identifier}":"#{project_test_provisioningProfiles}"
},
}
)
# puts "*************| 開始上傳蒲公英... |*************"
# # 開始上傳蒲公英
# pgyer(api_key: "#{pgyer_apiKey}", user_key: "#{pgyer_userkey}")
# puts "*************| 上傳蒲公英成功?? |*************"
end
end
Jenkins + Git/Svn + fastlane
配置構(gòu)建條件,可以一鍵完成:上傳svn -> 打包 -> 郵件發(fā)布 -> 上架Appstore