其他錯誤
其他文章:
Jenkins(一)初步認(rèn)識
Jenkins(二)自動化打包(iOS)
Jenkins(三)自動化打包其他錯誤(iOS)
Jenkins(四)自動化打包幫助(iOS)
iOS 再談打包(證書、自動化盆均、持續(xù)集成等)從開始到結(jié)束(精簡)
1倔既、build發(fā)生的錯誤
[CJTestCIDemo] $ /usr/bin/agvtool vers -terse
No marketing version found (CFBundleVersion)
Technical version (CFBundleVersion) found in project configuration: .
Marketing version (CFBundleShortVersionString) used by Jenkins to produce the IPA:
Technical version (CFBundleVersion) used by Jenkins to produce the IPA:
Cleaning build directory: /Users/lichaoqian/Project/AutoPackaging/builds
FATAL: Unable to delete '/Users/lichaoqian/Project/AutoPackaging/builds'. Tried 3 times (of a maximum of 3) waiting 0.1 秒 between attempts.
錯誤信息的截圖如下:
修改方法只需將
Build output directory中的路徑改為$WORKSPACE下就可以桩撮。至于為什么其他目錄下不可以键兜,暫時不清楚屿聋。
2凛篙、ARCHIVE FAILED
** ARCHIVE FAILED **
The following build commands failed:
CompileStoryboard CJTestCIDemo/Base.lproj/Main.storyboard
CompileStoryboard CJTestCIDemo/Base.lproj/LaunchScreen.storyboard
(2 failures)
Build step 'Xcode' marked build as failure
Finished: FAILURE
錯誤信息的截圖如下:
最后發(fā)現(xiàn)是編譯問題完域,去掉safe area后,重新提交后旭贬,再構(gòu)建就可以了怔接。
3、ARCHIVE SUCCEEDED 但xxxExport.plist錯誤
** ARCHIVE SUCCEEDED **
Cleaning up previously generated .ipa files
Cleaning up previously generated .dSYM.zip files
Packaging IPA
FATAL: /Users/lichaoqian/Project/AutoPackaging/CJ/ad-hocFZ5YDHE5JZExport.plist
錯誤信息的截圖如下:
修改方法只需將 Output directory中的路徑改為$WORKSPACE下就可以稀轨。至于為什么其他目錄下不可以扼脐,暫時不清楚。(這個與問題1中的Build output directory路徑設(shè)置是一樣的原因),即修改后為:
4瓦侮、EXPORT FAILED
2018-01-16 17:00:44.747 xcodebuild[4385:839819] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fd950ec4860>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
"Error Domain=IDEProvisioningErrorDomain Code=9 \"\"CJTestCIDemo.app\" requires a provisioning profile.\" UserInfo={NSLocalizedDescription=\"CJTestCIDemo.app\" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the \"provisioningProfiles\" dictionary in your Export Options property list.}"
)}
error: exportArchive: "CJTestCIDemo.app" requires a provisioning profile.
Error Domain=IDEProvisioningErrorDomain Code=9 ""CJTestCIDemo.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="CJTestCIDemo.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
** EXPORT FAILED **
Failed to build /Users/Shared/Jenkins/Home/workspace/CJTestCIDemo/AutoPackaging/package/Beyond.ipa
Build step 'Xcode' marked build as failure
Finished: FAILURE
錯誤信息的截圖如下:
錯誤原因分析參考:Xcode 9 在 Jenkins 自動打包腳本 中使用 Xcode integration 插件打包失敗的原因
其中講到的原因為:因為 Xcode 9 默認(rèn)不允許訪問鑰匙串的內(nèi)容艰赞,必須要設(shè)置 allowProvisioningUpdates 才會允許,但是由于 Xcode integration 插件封閉肚吏,并不能對其進(jìn)行修改加上這個屬性方妖,所以決定使用 Shell 腳本代替插件
分析問題
直接用命令行打包
嘗試用命令行直接打包Jenkins目錄下的xcworkspae文件。我們先來看下不完善的命令:
所以輸入如下命令
xcodebuild -archivePath "/Users/lichaoqian/Desktop/TestCI/CJTestCIDemo.xcarchive" -workspace "/Users/Shared/Jenkins/Home/workspace/CJTestCIDemo/CJTestCI/CJTestCIDemo/CJTestCIDemo.xcworkspae" -sdk iphoneos -scheme "CJTestCIDemo" -configuration "ad-hoc" archive
即
執(zhí)行后罚攀,發(fā)現(xiàn)如下圖錯誤:
分析結(jié)果是權(quán)限問題党觅,所以我們在剛才執(zhí)行的命令前面加上sudo
,即
此時斋泄,執(zhí)行后沒有上面的問題了杯瞻,但是出現(xiàn)的問題,如下圖:
之后我們用不是Jenkins目錄下的CJTestCIDemo.xcworkspae實驗炫掐,到底是不是證書又兵,發(fā)現(xiàn)還是一樣的問題。最后再sudo去掉卒废,發(fā)現(xiàn)打包成功了。所以宙地,Jenkins目錄下的那個CJTestCIDemo.xcworkspae的打包摔认,并不能通過添加sudo來解決。