iOS腳本自動(dòng)化打包方案--xcodebuild
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、武安網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為武安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
本文主要xcodebuild腳本自動(dòng)化打包并上傳到蒲公英或者AppStore,廢話不多說,直接上干貨!
先了解一下xcodebuild打包需要的一些指令
-workspace XXX.xcworkspace
XXX.xcworkspace需要編譯工程的工作空間名稱,如果工程不是.xcworkspace的,可以不需要-workspace XXX.xcworkspace這段話
-scheme XXX
XXX是工程名稱,-scheme XXX是指定構(gòu)建工程的名稱
-configuration Release
填入打包的方式是Debug或Release,就跟在Xcode中編譯前需要在Edit scheme的Build configuration中選擇打出來的包是Debug還是Release包一樣,-configuration就是配置編譯的Build configuration
-archivePath ./myArchivePath
配置生成.xcarchive的路徑, ./表示生成在當(dāng)前目錄下,myArchivePath是生成的.Archive文件名稱
ODE_SIGN_IDENTITY=證書
配置打包的指定證書,如果該工程的Xcode已經(jīng)配置好了證書,那么不加入這段話也可以,打包出來的證書就是Xcode中配置好的。
PROVISIONING_PROFILE=描述文件UUID
配置打包的描述文件,同上,Xcode已經(jīng)配置好了就不用在填入這段話了
CONFIGURATION_BUILD_DIR
配置編譯文件的輸出路徑,如果需要用到.xcarchive文件內(nèi)部的dSYM等文件,可以使用改字段指定輸出路徑。
如果工程是勾選了Automatically manage signing,那么就不用在配置ODE_SIGN_IDENTITY和PROVISIONING_PROFILE,今天這里講到的Automatically manage signing自動(dòng)配置證書,手動(dòng)配置的就不多說了,有興趣的話可以自己研究。
xcode工程配置自動(dòng)獲取證書,如下圖:
打包所需要文件
配置打包的ExportOptions.plist文件,可以在任意一個(gè)Xcode工程中新建一個(gè)ExportOptions.plist文件。dev和adHoc和AppStore的配置文件內(nèi)容不一樣,可以先手動(dòng)打包后看下plist文件的樣式,這里提供一個(gè)樣例:
這里method對(duì)應(yīng)的value為打包對(duì)應(yīng)的環(huán)境,有development、ad-hoc、app-store、enterprise根據(jù)打包環(huán)境來配置不同的值
編譯腳本命令
xcodebuild archive -workspace XXX.xcworkspace -scheme XXX -configuration Release -archivePath ./myArchivePath CONFIGURATION_BUILD_DIR ./dir ODE_SIGN_IDENTITY=證書 PROVISIONING_PROFILE=描述文件UUID
導(dǎo)出ipa包命令
xcodebuild -exportArchive -archivePath ./myArchivePath.xcarchive -exportOptionsPlist ./ExportOptions.plist -exportPath ./out
-archivePath ./myArchivePath.xcarchive指定需要打包的.xcarchive路徑,./myArchivePath.xcarchive表示在當(dāng)前終端路徑下的myArchivePath.xcarchive文件
-exportOptionsPlist ./ExportOptions.plist指定打包需要的ExportOptions.plist配置文件路徑
-exportPath ./out指定打包輸出的路徑, ./out表示打包結(jié)果輸出在終端的當(dāng)前路徑下的out文件家中。如果沒有out文件夾會(huì)自動(dòng)創(chuàng)建一個(gè)
腳本操作
首先:cd到需要自動(dòng)打包的工程下
然后:在終端中輸入touch xcodebuild.sh創(chuàng)建xcodebuild.sh腳本文件
然后:雙擊打開腳本寫入下面 腳本內(nèi)容(請(qǐng)確保所有版本的plist配置文件都寫好了)
最后:在終端中輸入./xcodebuild.sh運(yùn)行腳本,按照步驟完成打包選擇(如果運(yùn)行的時(shí)候出現(xiàn)Permission denied,請(qǐng)先在終端中執(zhí)行chmod a+x *.文件的后綴名后,在運(yùn)行,相當(dāng)于提高腳本文件的權(quán)限)
腳本內(nèi)容
此腳本包含了自動(dòng)上傳蒲公英的選擇操作,根據(jù)輸入指令來執(zhí)行具體操作
腳本實(shí)現(xiàn)
具體詳細(xì)腳本見GitHub地址: 如果好用記得給star,謝謝!
如腳本打包執(zhí)行遇到問題可留言溝通!
iOS開發(fā)包含的內(nèi)容有:語言:objective-c,swift,設(shè)計(jì)模式:mvc,數(shù)據(jù)庫:sqlite coredata(一套api),操作系統(tǒng):mac庫:太多了,ASI,AFN,F(xiàn)MDB這種大多數(shù)都會(huì)用到 github一搜一大把,很多不用自己寫,多人協(xié)作:svn,git,經(jīng)常要用github git是必須會(huì)的,其他通用知識(shí):http,socket等等,至于工具,一上來整這么多沒意義,你得會(huì)做點(diǎn)東西才用得上工具是不是。有需求就會(huì)去分析去找解決方案。比如你發(fā)現(xiàn)xcode的文件結(jié)構(gòu)是虛擬的,建了文件夾磁盤上沒有,很不好管理,那你就會(huì)去找解決方法,然后發(fā)現(xiàn)synx就可以解決這個(gè)問題。工具是這樣搜索,用起來的。iOS開發(fā)者有價(jià)值的工具集 前人也是總結(jié)了不少。然后一般寫iOS的UI有三種方式。xib,Storyboard以及代碼創(chuàng)建。我覺得代碼是效率最高也最厲害的;關(guān)于iPad和iPhone如果要適配的話是不大好的,最好設(shè)計(jì)兩種UI。不同意,代碼確實(shí)是最厲害的,但不是效率最高的,對(duì)個(gè)人而言,autolayout sizeclass絕對(duì)是storyboard更有效率,點(diǎn)兩下的事情代碼幾十行(當(dāng)然基本都是自動(dòng)補(bǔ)全,我還是嫌多),適配問題有了sizeclass也只需要一套UI了。但為什么說個(gè)人而言,因?yàn)槠髽I(yè)一般因?yàn)閳F(tuán)隊(duì)協(xié)作問題不喜歡用storyboard,容易發(fā)生沖突,所以代碼,IB都得會(huì),什么適合用什么。
blockquote
一、Xcode-archive(蘋果推薦方式) --- (推薦)
二、iTunes拖入
三、全自動(dòng)編譯腳本 --- (推薦)
四、通過已有.app,編譯腳本自動(dòng)生成ipa包
五、通過已有.app,手動(dòng)壓縮改后綴方式
/blockquote
/br
blockquote
** 一、Xcode-archive(蘋果推薦方式)(推薦)**
/blockquote
blockquote
** 二、iTunes拖入**
/blockquote
blockquote
三、全自動(dòng)編譯腳本
/blockquote
blockquote
四、通過已有.app,編譯腳本自動(dòng)生成ipa包
/blockquote
5.將要轉(zhuǎn)化的.app文件放到distribute/文件夾下
這時(shí)的文件夾目錄結(jié)構(gòu)是這樣的:(注意,腳本中所有appName請(qǐng)先替換成你的真正app名稱)
6: 運(yùn)行distribute.sh腳本
打開Terminal,cd到distribute文件夾下,把distribute.sh拉到terminal中執(zhí)行。如果提示permission denied,則用“chmod 777 distribute.sh”命令賦予權(quán)限后,再執(zhí)行一次distribute.sh。
7: 大約若干秒后,會(huì)在distribute/文件夾下生成appName/文件夾,里面的appName.ipa就是我們想要的包。
blockquote
** 五、通過已有.app,手動(dòng)壓縮改后綴方式**
/blockquote
br /
參考資料:
——————————— 【 MadeBy 紀(jì)寶寶 】 ———————————
軟件開發(fā)工具包(縮寫:SDK,英語全稱:Software Development Kit),一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件時(shí)的開發(fā)工具的集合。
在OC的開發(fā)中,我們涉及到的一般是靜態(tài)庫(.a)或者動(dòng)態(tài)庫(.framework)。(注:不是所有的.framework就一定是動(dòng)態(tài)庫)
.a是一個(gè)純二進(jìn)制文件,.framework中除了有二進(jìn)制文件之外還有資源文件。 .a文件不能直接使用,至少要有.h文件配合(微信的SDK就是這種形式),.framework文件可以直接使用。 .a + .h + sourceFile = .framework。 建議用.framework。再者 靜態(tài)方式開發(fā),一直是iOS SDK開發(fā)的主流方式。
終端輸出為:armv7 arm64 是真機(jī)架構(gòu);i386 x86_64 是模擬器架構(gòu)。
終端輸出為:arm64 是真機(jī)架構(gòu);x86_64 是模擬器架構(gòu)。
Bundle 和 其他的SDK都要和創(chuàng)建的SDK放在同一個(gè)文件夾,然后拖入要使用的項(xiàng)目中,如果該項(xiàng)目中的SDK和創(chuàng)建的SDK中的引用的SDK重復(fù),那么就只要保持存在一個(gè)就好了。
iOS是由蘋果公司開發(fā)的移動(dòng)操作系統(tǒng)。蘋果公司最早于2007年1月9日的Macworld大會(huì)上公布這個(gè)系統(tǒng),最初是設(shè)計(jì)給iPhone使用的,后來陸續(xù)套用到iPod touch、iPad以及Apple TV等產(chǎn)品上。下面是我收集整理的ios開發(fā)用Charles進(jìn)行抓包的方法,歡迎閱讀。
ios開發(fā)用Charles進(jìn)行抓包的方法
首先,我們可以去一些網(wǎng)站下載安裝一下這個(gè)軟件。安裝完畢后, 我們能看到這個(gè)漂亮的青花瓷。
現(xiàn)在,我們需要將我們的電腦配置成手機(jī)的.代理服務(wù)器,這樣才能讓我們的 MAC 順利的攔截到手機(jī)軟件的網(wǎng)絡(luò)接口。我們先看一下自己的電腦ip。
在系統(tǒng)偏好設(shè)置 -- 網(wǎng)絡(luò) -- 查看當(dāng)前 IP。
然后我們來配置一下手機(jī)網(wǎng)絡(luò)設(shè)置,前提是你要確保你的手機(jī)和你的電腦在同一個(gè)局域網(wǎng)中。打開手機(jī)無線網(wǎng)的配置。就是點(diǎn)擊這個(gè)圖標(biāo)。
接著,我們就看到配置頁面啦,找到到代理這個(gè)欄目,選擇“手動(dòng)”,在服務(wù)器一項(xiàng),填寫剛才查看的電腦的ip,這里就是10.930.93.115,端口添加8888,然后返回就行了。
接著,我們?cè)陔娔X上打開 Charles。然后配置一下,主要是配置端口,按照?qǐng)D示點(diǎn)擊。
然后,在彈出框中找到端口,輸入8888,和你手機(jī)輸入的端口號(hào)保持一致。
到這里,配置就完成了?,F(xiàn)在你可以打開你的手機(jī)進(jìn)行上網(wǎng),這是會(huì)看到Charles 在刷刷的顯示數(shù)據(jù),并在右側(cè)面板中以黃色字體顯示出來。