從xcodebuild到shenzhen,再到Jenkins,完美演繹自動化操做。java
確保項目證書等配置都沒問題,能夠完美運行。ios
首先說明下使用文檔:git
man xcodebuild
基本上如今的包管理都是以pod來的,也就是以workspace的形式,因此基本的形式爲:github
xcodebuild [-project projectname] [-target targetname ...] [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
解釋兩個參數:shell
能夠查看項目配置選項:swift
xcodebuild -target Demo -configuration Debug -showBuildSettings
基本的構建命令:xcode
xcodebuild -workspace Demo.xcworkspace -scheme Demo -configuration Debug -sdk iphoneos10.1
命令運行成功後會提示 ** BUILD SUCCEEDED **
,通常會在項目目錄下生成build文件夾,能夠在裏面看到你的生成的包。瀏覽器
對於workspace
的形式來講,基本上也差很少:ruby
xcodebuild -workspace Demo.xcworkspace -scheme Demo -configuration Debug -sdk iphoneos10.1
好像對workspace構建後不會在項目目錄下生成build文件夾,能夠在你的命令後面添加SYMROOT=buildDir指定一個build文件夾)。markdown
生成文件的命令是xrun
:
xcrun -sdk iphoneos -v PackageApplication ./build/Release-iphoneos/Demo.app -o ~/Desktop/Demo.ipa
打包成功後,會在桌面找到你的ipa。
利用github上一個開源項目: shenzhen 能夠在命令行爲ios項目進行打包併發布。 具體安裝步驟以下:
gem install shenzhen
若是安裝過程出現錯誤有多是ruby的源找不到,能夠到 RubyGems 鏡像 改變ruby源。
若是仍是出現問題能夠更新下gem便可(sudo gem update)。
一切準備完畢就能在控制檯上運行ipa命令了:
$ ipa Build and distribute iOS apps (.ipa files) Commands: build Create a new .ipa file for your app distribute:crashlytics Distribute an .ipa file over Crashlytics distribute:deploygate Distribute an .ipa file over deploygate distribute:fir Distribute an .ipa file over fir.im distribute:ftp Distribute an .ipa file over FTP distribute:hockeyapp Distribute an .ipa file over HockeyApp distribute:itunesconnect Upload an .ipa file to iTunes Connect distribute:pgyer Distribute an .ipa file over Pgyer distribute:rivierabuild Distribute an .ipa file over RivieraBuild distribute:s3 Distribute an .ipa file over Amazon S3 distribute:testfairy Distribute an .ipa file over TestFairy help Display global or [command] help documentation info Show mobile provisioning information about an .ipa file
能夠看出經過bulid參數就能建立ipa文件,好比輸入命令:
ipa build
會直接在當前目錄下生成ipa文件以及dSYM文件。
若是你的工程項目有不少targets,則ipa bulid命令會列出如今全部targets,咱們能夠選擇一個進行打包。
如簡單的打包蒲公英事例:
ipa distribute:pgyer -u USER_KEY -a APP_KEY
iTunes Connect Distribution:
ipa distribute:itunesconnect -a me@email.com -p myitunesconnectpassword -i appleid --upload
在 Mac 環境下,咱們須要先安裝 JDK,在Jenkins 的官網下載最新的 war 包。下載完成後,打開終端,進入到 war 包所在目錄,執行如下命令:
java -jar jenkins.war --httpPort=8080 #或簡單的寫法 java -jar jenkins.war
待Jenkins啓動後,在瀏覽器中輸出一下地址: http://localhost:8080
這樣就打開Jenkins管理頁面了。
基本界面以下:
Jenkins開始頁面
點擊左上角的新建,或是店家開始建立一個新任務,出現下面的頁面:
Jenkins新建頁面
這裏輸入的名字爲Demo,並選擇 構建一個自由風格的軟件項目
,點擊OK進入到下一頁面:
Jenkins新建頁面
其中這裏在General中,點擊高級,先使用本地項目作測試:
Jenkins新建本地頁面
源碼管理暫選None,構建觸發器和構建環境不須要選擇:
Jenkins新建本地頁面
構建,選擇shell形式,使用shenzhen
來構建並直接上傳到蒲公英:
Jenkins使用shenzhen構建
其中,USER_KEY
和 API_KEY
能夠在蒲公英的「帳戶設置」中找到,以後進行相應替換。
構建後的操做咱們也不須要,直接點擊保存。
保存以後進入到項目工做目錄,點擊當即構建:
Jenkins構建
會在構建歷史中顯示構建結構,點擊進入查看:
Jenkins
點擊 Console Output
查看日誌信息:
Jenkins
會有一堆信息,成功的話會提示去蒲公英查看。
進入到蒲公英後臺,會發現咱們的應用已經發布上去,能夠進行測試了。
首先配置SSH:
Jenkins
建立global的類型:
Jenkins
進去後點擊左側的 ` Add Credentials`:
Jenkins
選擇SSH類型,輸入本身的用戶名,Private Key
直接從 ~/.ssh
目錄下讀取就好。
工程的配置,跟本地的區別就是不須要配置自定義的工做空間,同時選擇源碼管理中的Git
,填寫對應的地址信息:
Jenkins
而後其餘的構建、查看過程都一致。
到蒲公英上檢查,果真存在。完美!
以上面的方式運行的Jenkins
的,命令行是不能關閉的,爲了方便的話,須要設置在後臺運行:
nohup java -jar jenkins.war &
將命令寫入到sh文件中,好比就叫 start.sh,運行的時候直接跑腳本就好,附上文件內容:
#!/bin/sh
nohup java -jar /Users/home/Desktop/jenkinsWorkspace/jenkins/jenkins.war &
一樣的,關閉命令也能夠直接使用,不過在使用關閉以前,須要下載個 jenkins-cli.jar
文件:
首頁 -> 系統管理 -> Jenkins CLI
裏面一樣包含好多其餘命令,能夠根據本身須要來調試。
設置關閉 Jenkins
的腳本:
#!/bin/sh java -jar /Users/home/Documents/jenkins/jenkins-cli.jar -s http://localhost:8080/ shutdown
別忘記修改成本身的路徑。
通常的命令能夠直接在網址上體現出來,好比重啓: http://localhost:8080/restart
上面既然用了iOS的打包,因此腳本感受也是用swift來寫也是比較配套的,在這裏就不貼出來了,喜歡研究的童鞋就google一下~,我將之命名爲begin.swift
和end.swift
,恩,感受仍是不錯的