fastlane 常用函數(shù)

fastlane生命周期

  • before_all在執(zhí)行 lane 之前只執(zhí)行一次
  • before_each每次執(zhí)行 lane 之前都會執(zhí)行一次
  • lane自定義的任務(wù)
  • after_each每次執(zhí)行 lane 之后都會執(zhí)行一次
  • after_all在執(zhí)行 lane 成功結(jié)束之后執(zhí)行一次
  • error在執(zhí)行上述情況任意環(huán)境報錯都會中止并執(zhí)行一次

環(huán)境變量

從 fastlane 的設(shè)計體系上在各個地方都加入了環(huán)境變量的支持咙俩,每個擴展的參數(shù)、以及擴展需要共享給其他擴展和任務(wù)讀取的數(shù)據(jù)都是通過環(huán)境變量獲取松却,如下是我收集的比較常用的列表(需要寫入~/.bash_profile文件):

FASTLANE_USER   credentials_manager Apple 開發(fā)者賬戶名    驗證通過后會保存 Keychain
FASTLANE_PASSWORD   credentials_manager Apple 開發(fā)者賬戶密碼   驗證通過后會保存 Keychain
FASTLANE_TEAM_IDCERT_TEAM_ID    producesigh Apple 團隊 ID 
DELIVER_USER<br >PRODUCE_USERNAME   deliverproduce  iTunesConnect 賬戶名   
DELIVER_PASSWORD    deliver iTunesConnect 賬戶密碼  
MATCH_PASSWORD  match   證書加 / 解密密碼  
FASTLANE_XCODE_LIST_TIMEOUT fastlane_core   獲取 iOS Scheme 的超時時間 默認(rèn) 10s

打包環(huán)境自我診斷(生成和同步證書)

# 開發(fā)環(huán)境證書
$ fastlane match development
# 產(chǎn)品環(huán)境證書
$ fastlane match appstore
# 內(nèi)測環(huán)境證書
$ fastlane match adhoc

如:


image.png

#設(shè)置上傳testflight待測功能日志暴浦,取gitcommit最新10條記錄
 changelog_from_git_commits( #設(shè)置上傳testflight待測功能日志,取gitcommit最新10條記錄
      commits_count: 10,
      pretty: "- (%ae) %s",
      date_format: "short",
      match_lightweight_tag: false,
      merge_commit_filtering: "exclude_merges"
    ) 
# 版本號自增
increment_build_number(xcodeproj: "jianzhimao")
# 項目名稱
scheme_name = "jianzhimao"
# Debug但還是指定打包時的配置項晓锻,默認(rèn)為Release / "DEBUG"
configuration = "DEBUG"
# info.plist的路徑
plist_path = "/Users/jianzhimao/Desktop/PartTimeCat_iOS/jianzhimao/jianzhimao/jianzhimao-Info.plist"
# version 版本號
#version = get_info_plist_value(path: plist_path, key: "CFBundleShortVersionString")
version = get_version_number(xcodeproj: "jianzhimao.xcodeproj")
# build 版本號
#build = get_info_plist_value(path: plist_path, key: "CFBundleVersion")
build = get_build_number(xcodeproj: "jianzhimao.xcodeproj")
# APP名稱
app_name = get_info_plist_value(path: plist_path, key: "CFBundleDisplayName")
#輸出文件
outputDir = "/Users/jianzhimao/Desktop/fastlane_build_兼職貓"
#當(dāng)前時間
currentTime = Time.now.strftime('%Y-%m-%d %H:%M')
#打包的ipa名稱
outputName = "v#{version}_build#{build}_#{configuration}_#{currentTime}"

# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane


default_platform(:iOS)

platform :iOS do

before_all do

puts "http:// =========== 準(zhǔn)備開車 biuing =========== //"
puts last_git_commit

end

# 還不行
lane :testflightBiu do

 desc "http:// =========== release biu =========== //"

    gym

#上傳至testflight
  upload_to_testflight(ipa: outputName , 
username:”1404565175@qq.com” ,  
notes: "this is review note for the reviewer <3 thank you for reviewing") 
 
end


# fir  還不行
lane :firBiu do

 desc "http:// =========== fir biu =========== //"

gym

fir_api_token="e698f87eec6c3a9b09b959cab914e4e3" # fir token

firim(firim_api_token: fir_api_token)  #上傳至fir
 
end


lane :biu do

 desc "http:// =========== normal biu =========== //"

# 版本號自增
increment_build_number(xcodeproj: "jianzhimao")
# 項目名稱
scheme_name = "jianzhimao"
# Debug但還是指定打包時的配置項歌焦,默認(rèn)為Release / "DEBUG"
configuration = "DEBUG"
# info.plist的路徑
plist_path = "/Users/jianzhimao/Desktop/PartTimeCat_iOS/jianzhimao/jianzhimao/jianzhimao-Info.plist"
# version 版本號
#version = get_info_plist_value(path: plist_path, key: "CFBundleShortVersionString")
version = get_version_number(xcodeproj: "jianzhimao.xcodeproj")
# build 版本號
#build = get_info_plist_value(path: plist_path, key: "CFBundleVersion")
build = get_build_number(xcodeproj: "jianzhimao.xcodeproj")
# APP名稱
app_name = get_info_plist_value(path: plist_path, key: "CFBundleDisplayName")
#輸出文件
outputDir = "/Users/jianzhimao/Desktop/fastlane_build_兼職貓"
#當(dāng)前時間
currentTime = Time.now.strftime('%Y-%m-%d %H:%M')
#打包的ipa名稱
outputName = "v#{version}_build#{build}_#{configuration}_#{currentTime}"

# 開干
gym(
  scheme: scheme_name, #你項目的scheme,
  workspace:"#{scheme_name}.xcworkspace",
  clean: false,  # 在打包前是否先執(zhí)行clean。
  export_xcargs:"-allowProvisioningUpdates",
  output_directory: outputDir,  # 指定.pa文件的輸出目錄砚哆,默認(rèn)為當(dāng)前文件夾独撇。
  output_name: outputName,  # 指定生成的ipa文件的名稱,應(yīng)包含文件擴展名。
  configuration: configuration,  # 指定打包時的配置項纷铣,默認(rèn)為Release卵史。
  silent: true,  # 是否隱藏打包時不需要的信息。
  include_symbols: false,
  include_bitcode: false,
  export_method: "ad-hoc",  # 指定導(dǎo)出ipa時使用的方法搜立,可用選項:app-store, ad-hoc, package, enterprise, development, developer-id
)

end

#--發(fā)布AppStore上的版本配置
lane :appstoreBiu do

# 版本號自增
increment_build_number(xcodeproj: "jianzhimao")
# 項目名稱
scheme_name = "jianzhimao"
# Debug但還是指定打包時的配置項以躯,默認(rèn)為Release / "DEBUG"
configuration = "DEBUG"
# info.plist的路徑
plist_path = "/Users/jianzhimao/Desktop/PartTimeCat_iOS/jianzhimao/jianzhimao/jianzhimao-Info.plist"
# version 版本號
#version = get_info_plist_value(path: plist_path, key: "CFBundleShortVersionString")
version = get_version_number(xcodeproj: "jianzhimao.xcodeproj")
# build 版本號
#build = get_info_plist_value(path: plist_path, key: "CFBundleVersion")
build = get_build_number(xcodeproj: "jianzhimao.xcodeproj")
# APP名稱
app_name = get_info_plist_value(path: plist_path, key: "CFBundleDisplayName")
#輸出文件
outputDir = "/Users/jianzhimao/Desktop/fastlane_build_兼職貓"
#當(dāng)前時間
currentTime = Time.now.strftime('%Y-%m-%d %H:%M')
#打包的ipa名稱
outputName = "v#{version}_build#{build}_#{configuration}_#{currentTime}"
    sigh(
        app_identifier: "com.jiuwei.jianzhimao",
    username: "1404565175@qq.com"
    )
   
    gym(
    scheme: scheme_name, #你項目的scheme,
    configuration: "Release",
    silent: true,
    clean: true,
    workspace:"#{scheme_name}.xcworkspace",
    include_bitcode: false,
    output_directory: outputDir,  # 指定.pa文件的輸出目錄,默認(rèn)為當(dāng)前文件夾啄踊。
    output_name: outputName,  # 指定生成的ipa文件的名稱忧设,應(yīng)包含文件擴展名。
    export_xcargs: "-allowProvisioningUpdates”,
    )
    deliver(
      submit_for_review: false,
      skip_screenshots: true,
      skip_metadata: true
    )
  end

 lane : testflight_beta do # beta是打包的腳本命令 打包上傳時執(zhí)行 fastlane beta
# 版本號自增
increment_build_number(xcodeproj: "jianzhimao")
# 項目名稱
scheme_name = "jianzhimao"
# Debug但還是指定打包時的配置項颠通,默認(rèn)為Release / "DEBUG"
configuration = "DEBUG"
# info.plist的路徑
plist_path = "/Users/jianzhimao/Desktop/PartTimeCat_iOS/jianzhimao/jianzhimao/jianzhimao-Info.plist"
# version 版本號
#version = get_info_plist_value(path: plist_path, key: "CFBundleShortVersionString")
version = get_version_number(xcodeproj: "jianzhimao.xcodeproj")
# build 版本號
#build = get_info_plist_value(path: plist_path, key: "CFBundleVersion")
build = get_build_number(xcodeproj: "jianzhimao.xcodeproj")
# APP名稱
app_name = get_info_plist_value(path: plist_path, key: "CFBundleDisplayName")
#輸出文件
outputDir = "/Users/jianzhimao/Desktop/fastlane_build_兼職貓"
#當(dāng)前時間
currentTime = Time.now.strftime('%Y-%m-%d %H:%M')
#打包的ipa名稱
outputName = "v#{version}_build#{build}_#{configuration}_#{currentTime}"

    build_app(workspace: "#{scheme_name}.xcworkspace", scheme: scheme_name) # 開始打包-打包時使用的配置文件
    upload_to_testflight #打包完成后-上傳到testflight
  end


end


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末址晕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子顿锰,更是在濱河造成了極大的恐慌谨垃,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硼控,死亡現(xiàn)場離奇詭異刘陶,居然都是意外死亡,警方通過查閱死者的電腦和手機淀歇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門易核,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浪默,你說我怎么就攤上這事牡直。” “怎么了纳决?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵碰逸,是天一觀的道長。 經(jīng)常有香客問我阔加,道長饵史,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任胜榔,我火速辦了婚禮胳喷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夭织。我一直安慰自己吭露,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布尊惰。 她就那樣靜靜地躺著讲竿,像睡著了一般泥兰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上题禀,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天鞋诗,我揣著相機與錄音,去河邊找鬼迈嘹。 笑死削彬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秀仲。 我是一名探鬼主播吃警,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼啄育!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拌消,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤挑豌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后墩崩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氓英,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年鹦筹,在試婚紗的時候發(fā)現(xiàn)自己被綠了铝阐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡铐拐,死狀恐怖徘键,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遍蟋,我是刑警寧澤吹害,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站虚青,受9級特大地震影響它呀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棒厘,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一纵穿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奢人,春花似錦谓媒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫筑。三九已至,卻和暖如春宗弯,著一層夾襖步出監(jiān)牢的瞬間脯燃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工蒙保, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辕棚,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓邓厕,卻偏偏與公主長得像逝嚎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子详恼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容