使用 Fir.cli 工具實(shí)現(xiàn)快速打包 一 (iOS版本)

? ? ? ?最近一直在做遠(yuǎn)程開發(fā),需求也比較頻繁,所以動(dòng)不動(dòng)就編譯打包提測(cè)上傳做了很多重復(fù)工作,基本每次都得花十分鐘左右時(shí)間,而且其中每個(gè)過程都必須仔細(xì)關(guān)注,以免出現(xiàn)差錯(cuò),很是費(fèi)事.

? ? ? ?在極其注重效率的今天,且所有編譯器或IDE都希望程序員把注意力集中到業(yè)務(wù)需求上的大環(huán)境下,傳統(tǒng)打包方式顯然已經(jīng)跟不上節(jié)奏.? 所以持續(xù)集成和快速打包等方式已然成為主流,今天就詳細(xì)介紹下長(zhǎng)期專注于應(yīng)用內(nèi)測(cè)服務(wù)的 fir - (官網(wǎng)鏈接 https://fir.im/) 提供的快速打包上傳一條龍工具 fir.cli .

? ? ? ?先說說使用快速打包之前我們的日常提測(cè)步驟是什么

1. Xcode ->Product-Scheme->Edit Scheme 下選取Debug打包方式

日常提測(cè)選debug模式

2.選擇Archive 將源碼轉(zhuǎn)換為 .xcarchive 包

點(diǎn)擊之前要注意選擇的Archive模式


3.配置好證書,及描述文件后,選擇打包ipa方式

提測(cè)選擇DevelopMent

4.將桌面生成的包傳到fir,并生成短鏈,填寫changeLog

上傳ipa至fir服務(wù)器


5.上傳完成后將短鏈地址告知測(cè)試人員

打開QQ/討論組/微信 等,打開相關(guān)人員對(duì)話框 編輯更新內(nèi)容 粘貼下載URL,發(fā)送.....

當(dāng)然以上部分步驟也可用Xcode自帶的打包命令執(zhí)行,但上傳下載的步驟總是省不了,實(shí)際上fir.cli也是使用Xcode命令來實(shí)現(xiàn)打包的

使用fir.cli之后

以上所有繁瑣的過程在使用fir.cli后可以簡(jiǎn)化成一條命令,極大的縮短的打包時(shí)間且降低了出錯(cuò)率

$ fir bi -w -t doctor -C Debug -S doctor -p -c“2.5.3需求提測(cè)”?

以上是針對(duì)我目前項(xiàng)目的寫法,意思為:直接在項(xiàng)目根目錄下輸出 cocoapods項(xiàng)目里(-w) doctor target下(-t doctor) 以debug方式打包(-C Debug) 設(shè)置Scheme 名字為 doctor (-S doctor) 打包完成后自動(dòng)上傳至對(duì)應(yīng)Bundle id 的應(yīng)用動(dòng)態(tài)下,且使用原有下載短鏈(-p) 更新內(nèi)容為 "2.5.3需求提測(cè)" (-c“2.5.3需求提測(cè)”).

如果需要通知相關(guān)人員的話可以加上

$ curl https://hooks.pubu.im/services/test_test_test -X POST --data-urlencode? 'payload={"text":"iOS版本已更新","attachments":[{"title":"會(huì)醫(yī)","description":"2.5.3需求完善","url":"http://fir.im/doctest","color":"success"}],"username":"楊永強(qiáng)","icon_url":"https://oivkbuqoc.qnssl.com/91305b85ec630717a36fe6b839aac79764667d23?t=1493359982.968105","buttons":[{"text":"點(diǎn)擊下載","url":"http://fir.im/doctest"}]}'

其中 https://hooks.pubu.im/services/test_test_test 為配置了團(tuán)隊(duì)協(xié)作工具 瀑布 IM 之后的post鏈接,作用就是使用命令快速發(fā)送自定義聊天消息,其主要業(yè)務(wù)也是將碎片化的開發(fā)時(shí)信息做統(tǒng)一收集,本篇暫不介紹其具體使用方法, 其具體業(yè)務(wù)內(nèi)容可參考,其具體業(yè)務(wù)可參考 瀑布 IM

使用場(chǎng)景

這通知命令看起來也很繁瑣,且changeLog還得寫兩次,其余別的參數(shù)也看起來沒什么關(guān)鍵信息,其實(shí)fir早就幫我們想好了,在fir官網(wǎng)的應(yīng)用配置下面直接配置瀑布IM的hook鏈接后可以很方便的自動(dòng)幫我們做了通知人員的事情

零信 == 瀑布IM


其使用場(chǎng)景為下圖,在執(zhí)行完 ($ fir bi -w -t doctor -C Debug -S doctor -p -c“2.5.3需求提測(cè)”) 命令后,fir會(huì)自動(dòng)發(fā)相關(guān)消息到瀑布IM

app有更新后自動(dòng)發(fā)布消息通知相關(guān)人員

這樣一來我們連通知相關(guān)人員的溝通成本都省掉了,以后就差直接往測(cè)試手機(jī)里自動(dòng)裝應(yīng)用啦??

其安裝方式非常簡(jiǎn)單 只需要

$ gem install fir-cli

更新fir.cli 為

$ fir upgrade

其必要安裝條件及運(yùn)行條件為:

1.已安裝Xcode及Xcode Command -line-tool 工具

2.更換Ruby源為淘寶源,(如果未翻墻)

3.確保Ruby 的 gem為最新版本

4:確保正確配置相關(guān)開發(fā)證書及描述文件

使用前先將fir.cli與你的賬號(hào)簡(jiǎn)歷綁定

$ fir login

這時(shí)需要輸入fir賬號(hào)的token來建立對(duì)應(yīng)關(guān)系


點(diǎn)擊生成fir token

復(fù)制token到終端即可建立綁定關(guān)系

繼續(xù)執(zhí)行

($ fir bi -w -t doctor -C Debug -S doctor -p -c“2.5.3需求提測(cè)”)具體項(xiàng)目可按幫助內(nèi)容執(zhí)行具體命令

在執(zhí)行完打包命令后會(huì)在項(xiàng)目根目錄下生成fir_build目錄,其結(jié)構(gòu)為:

是不是很方便,甚至幫我們生成了對(duì)應(yīng)的符號(hào)表文件,另外fir.cli還可集成?BugHD,如果想使用那么可直接使用命令配置實(shí)現(xiàn),自動(dòng)上傳符號(hào)表文件,簡(jiǎn)直不要太方便.

fir mapping指令用于將符號(hào)表上傳至BugHD.com所對(duì)應(yīng)的項(xiàng)目, 目前已經(jīng)支持 dSYM 和 txt 兩種格式的符號(hào)表文件上傳, 有以下三種方法上傳:

指定 version 和 build 上傳:

$ fir m-P-v-b-T

在 publish 的時(shí)候自動(dòng)上傳:

$ fir p-m-P-T

在 build_ipa 的時(shí)候自動(dòng)上傳:

$ fir b-P-M -p -T

詳細(xì)的使用說明, 可以使用fir mapping -h查看

在fir_build目錄的exportOptions.plist 內(nèi)容為

均為默認(rèn)參數(shù),可修改后使用配置方便命令打包

fir.cli 還可以直接編譯 Github 上的 workspace

$ fir build_ipa git@github.com:xxxx.git -o path/to/output -w -C Release -t allTargets GCC_PREPROCESSOR_DEFINITIONS="FOO=bar"

當(dāng)然fir.cli能做的遠(yuǎn)不止這些,具體-help 為

Usage:

fir build_ipa BUILD_DIR [options] [settings]

Options:

-B, [--branch=BRANCH]# Set branch if project is a git repo, the default is `master`

-w, [--workspace], [--no-workspace]# true/false if build workspace

-S, [--scheme=SCHEME]# Set the scheme NAME if build workspace

-C, [--configuration=CONFIGURATION]# Use the build configuration NAME for building each target

-d, [--destination=DESTINATION]# Set the destination specifier

-t, [--target=TARGET]# Build the target specified by target name

-E, [--export-method=EXPORT_METHOD]# for exportOptionsPlist method, ad-hoc as default

-O, [--optionPlistPath=OPTIONPLISTPATH]# User defined exportOptionsPlist path

-f, [--profile=PROFILE]# Set the export provisioning profile

-o, [--output=OUTPUT]# IPA output path, the default is: BUILD_DIR/fir_build_ipa

-p, [--publish], [--no-publish]# true/false if publish to fir.im

-s, [--short=SHORT]# Set custom short link if publish to fir.im

-n, [--name=NAME]# Set custom ipa name when built

-c, [--changelog=CHANGELOG]# Set changelog if publish to fir.im

-Q, [--qrcode], [--no-qrcode]# Generate qrcode

-M, [--mapping], [--no-mapping]# true/false if upload app mapping file to BugHD.com

-P, [--proj=PROJ]# Project id in BugHD.com if upload app mapping file

[--open], [--no-open]# true/false if open for everyone

[--password=PASSWORD]# Set password for app

-T, [--token=TOKEN]# User's API Token at fir.im

-L, [--logfile=LOGFILE]# Path to writable logfile

-V, [--verbose], [--no-verbose]# Show verbose

# Default: true

-q, [--quiet], [--no-quiet]# Silence commands

-h, [--help], [--no-help]# Show this help message and quit

多種命令組合基本可適用絕大部分使用場(chǎng)景,還未使用的快趕緊試試吧,而且內(nèi)容中提到的瀑布IM 功能也非常強(qiáng)大,囊括了絕大部分為提升開發(fā)效率而生的工具,其強(qiáng)強(qiáng)聯(lián)合必然會(huì)讓你的團(tuán)隊(duì)開發(fā)如虎添翼,試想下團(tuán)隊(duì)中的任何人的任何一次提交整個(gè)項(xiàng)目任何一小個(gè)動(dòng)作都能在一個(gè)IM應(yīng)用里收到通知并提供相關(guān)功能作分類查找處理,那溝通成本必然會(huì)大大降低.


近百項(xiàng)支持應(yīng)用

本人第一篇博文,不足之處還望大家能及時(shí)指出,相關(guān)的問題也可私聊我,一直致力于團(tuán)隊(duì)開發(fā)效率提升,大家有什么效率提升的好工具可以留言給我哈,感謝先

下一篇繼續(xù)介紹使用該工具自動(dòng)打包安卓項(xiàng)目的步驟

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凄诞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌君珠,老刑警劉巖茅特,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枫疆,死亡現(xiàn)場(chǎng)離奇詭異爵川,居然都是意外死亡敷鸦,警方通過查閱死者的電腦和手機(jī)息楔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扒披,“玉大人值依,你說我怎么就攤上這事〉福” “怎么了愿险?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)价说。 經(jīng)常有香客問我辆亏,道長(zhǎng),這世上最難降的妖魔是什么鳖目? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任扮叨,我火速辦了婚禮,結(jié)果婚禮上领迈,老公的妹妹穿的比我還像新娘彻磁。我一直安慰自己,他們只是感情好狸捅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布衷蜓。 她就那樣靜靜地躺著,像睡著了一般尘喝。 火紅的嫁衣襯著肌膚如雪磁浇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天朽褪,我揣著相機(jī)與錄音置吓,去河邊找鬼鳍贾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛交洗,可吹牛的內(nèi)容都是我干的骑科。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼构拳,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼咆爽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起置森,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤斗埂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后凫海,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呛凶,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年行贪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漾稀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡建瘫,死狀恐怖崭捍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啰脚,我是刑警寧澤殷蛇,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站橄浓,受9級(jí)特大地震影響粒梦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荸实,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一匀们、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泪勒,春花似錦昼蛀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沦辙,卻和暖如春夫植,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工详民, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留延欠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓沈跨,卻偏偏與公主長(zhǎng)得像由捎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子饿凛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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