Jenkins + Xcode9 打包報錯: requires a provisioning profile with the Push Notifications feature.

問題詳情

圖片.png

因為 Xcode 9 默認不允許訪問鑰匙串的內容,必須要設置 allowProvisioningUpdates 才會允許,Jenkins的Xcode插件目前無法支持此項完成打包流程。

解決方案:將 Jenkins 項目里的 Xcode integration 構建步驟去掉,選擇腳本構建步驟,配合ExportOptions.plist進行打包:

QQ20180409-104527.png

plist文件配置

1.可以參照下面步驟2的格式創(chuàng)建一個,或者先使用xcode9手動打包一次(一次就夠了,只要獲得這個文件即可)然后在導出的文件夾中找到以下文件:ExportOptions.plist

圖片.png
  1. ExportOptions.plist詳細配置如下:
圖片.png
  1. 將plist文件拷貝到Jenkins的工作目錄(其他目錄也可以,但是盡量是一個不隨便變動的路徑)

  2. 配置腳本

腳本配置

參考配置格式(一定記得替換腳本中的xcarchive文件、xcodeproj/xcworkspace文件、exportOptionsPlist文件和scheme的路徑為你自己的路徑,Debug看情況而定,如果要打ad-hoc的包記得切換為Release):

由于Jenkins的安裝方式不同,工作空間的路徑也會有所區(qū)別,以下腳本中的路徑為通過pkg包的方式安裝之后的路徑,如果是通過war包安裝的Jenkins,路徑中的/Users/USERNAME/.jenkins需要替換為/Users/share/Jenkins/Home (只要你確保是Jenkins的工作路徑即可)

注意:如果是 workspace 的項目,那就將第一段的命令中 -project /Users/USERNAME/.jenkins/workspace/PROJECT NAME/APPNAME.xcodeproj修改為 -workspace /Users/USERNAME/.jenkins/workspace/PROJECT NAME/APPNAME.xcworkspace 即可。
記得替換命令中的APPNAME,USERNAME,PROJECT NAME, SCHEMENAME 為自己項目的參數(shù)

xcodebuild -archivePath "/Users/USERNAME/.jenkins/workspace/APPNAME/build/Debug-iphoneos/APPNAME.xcarchive" -project /Users/USERNAME/.jenkins/workspace/PROJECT NAME/APPNAME.xcodeproj -sdk iphoneos -scheme "SCHEMENAME" -configuration "Debug" archive

xcodebuild -exportArchive -archivePath "/Users/USERNAME/.jenkins/workspace/APPNAME/build/Debug-iphoneos/APPNAME.xcarchive" -exportPath "/Users/USERNAME/.jenkins/workspace/APPNAME/build/APPNAME_debug" -exportOptionsPlist '/Users/USERNAME/.jenkins/workspace/APPNAME/build/ExportOptions.plist' -allowProvisioningUpdates

接下來就可以愉快的開始打包啦,如果還有其他疑問歡迎留言

參考鏈接(感謝兩位大神提供的資料)

http://www.itdecent.cn/p/8b3d6b0d71e2
http://www.cocoachina.com/cms/wap.php?action=article&id=20803

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容