問題詳情

因為 Xcode 9 默認不允許訪問鑰匙串的內容,必須要設置 allowProvisioningUpdates 才會允許,Jenkins的Xcode插件目前無法支持此項完成打包流程。
解決方案:將 Jenkins 項目里的 Xcode integration 構建步驟去掉,選擇腳本構建步驟,配合ExportOptions.plist進行打包:

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

- ExportOptions.plist詳細配置如下:

將plist文件拷貝到Jenkins的工作目錄(其他目錄也可以,但是盡量是一個不隨便變動的路徑)
配置腳本
腳本配置
參考配置格式(一定記得替換腳本中的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