Jenkins持續集成之iOS應用打包

面向讀者

  1. Jenkins入門便可,但須要有親自實踐過
  2. 會用Mac,瞭解一些Xcode的基本知識

必要條件

  1. 一臺Mac電腦
  2. 蘋果開發者證書
  3. 一個能夠正常編譯的App項目源碼

環境配置

iOS的打包主要是分爲導入證書,以及xcodebuild編譯了swift

導入證書

Mac準備好以後,Xcode先裝上,用Xcode打開項目,而後打開項目配置的General部分xcode

輸入圖片說明

若是證書沒有導入到該電腦,點擊Fix Issue,就能夠很方便的將證書導入到Keychains中,這一步完成以後,將至關於證書導入到電腦中了。app

設置Mac的Jenkins Slave配置

  • 安裝Xcode Plugin插件:這個在Jenkins的插件管理裏面去安裝就行了iphone

  • 環境變量配置:Jenkins運行程序的時候,初始狀態是沒有任何環境變量的,須要手動配置,否則會提示說,簽名錯誤ui

    環境變量 HOME是必須的,USER變量可能也會用到,這Jenkins的節點配置裏面設置插件

    輸入圖片說明 圖片中塗掉的用戶名,改爲你電腦上的用戶名code

  • Jenkins job的配置圖片

    • Clean before build? 這個勾上,蘋果仍是很坑的,clean下比較保險
    • Pack application and build .ipa? 這個不要勾選,由於Mac OS X >= 10.10 就不支持打ipa了,勾了反而會報錯
    • Code Signing Identity 這個應該是可選的,證書的名字,能夠打開Keychains查看到,Example iPhone Developer: Hello Kitty (4PHMYE8812)
    • Xcode Project Directory 若是項目不是在當前目錄下,須要填上這個值

    其餘的配置,看狀況弄弄就行了,不寫應該問題也不大ip

    最後須要生成ipa文件,增長構建步驟裏面加上個Execute Shell, 腳本內容這樣寫開發

    TARGET=demo
    xcrun -sdk iphoneos -v PackageApplication ./build/Release-iphoneos/${TARGET}.app -o $PWD/$TARGET.ipa

    將其中的TARGET改爲項目真正的名字

其餘常見問題

  1. 出現 /libswiftCore.dylib: codesign failed with exit code 1

    Xcode Plugin的Code signing & OS X keychain options這個選項下面的Unlock Keychains? 這個選項勾上,Keychain path填上${HOME}/Library/Keychains/login.keychain 密碼填上Mac當前用戶的密碼,再次編譯就行了(純屬試驗出來的,徹底不知道怎麼回事,第一次成功後,即便是不勾選,第二次也會成功)。

  • Jenkins文件的後續操做

    生成的文件能夠上傳到第三方平臺,也能夠簡單的使用Archive the artifacts保存下來,這裏問題應該都不大,就不具體說明了。

後記

本身也搗鼓了好長時間,終於搞定,記錄下來,以供後來者參考。

相關文章
相關標籤/搜索