jenkins ios 命令行使用xcodebuild構建報錯build failed:rrSecInternalComponent或者ARCHIVE FAILED:codesign Build/Intermediates.noindex/ArchiveIntermediates 失敗


場景:

    jenkins上設置了自動構建ios app,ios sdk ,mac app, mac sdk 等,2020.3.30號晚上8點之前都是沒問題的,完全可以自動構建,但是九點構建就一直報錯了,因為懷疑是提交代碼導致的,但是使用已經發版的節點構建,也是失敗的,ios上的所有jenkins構建都失敗了。

    但是,奇怪的是,使用工具xcode就可以正常打包,在ios 終端手動輸入jenkins調用的那條打包的命令行,也是可以打包成功的。

報錯如下:

sdk的xcodebuild 打包命令:xcodebuild  -scheme ${ios_scheme}  -configuration Release  -sdk $sdk_version  clean build

報錯如下:

 

 

ipa(app)的xcodebuild archeieve 打包命令行:

xcodebuild clean -workspace ${workspace_name}.xcworkspace -scheme ${app_name} -configuration $ios_type
xcodebuild archive -workspace ${workspace_name}.xcworkspace -scheme ${app_name} -archivePath $archive_path -configuration $ios_type
echo export ipa .... #導出ipa
xcodebuild -exportArchive -archivePath $archive_path -exportPath arch/target_ipa -exportOptionsPlist ${app_name}/${app_name}/Info.plist

報錯如下:

 

 原因:

原因1:可能是xcode簽名機制(code signing mechanism) 的 bug, Xcode 中賬號多了,就會產生很多過期的PP文件,Xcode 沒有自帶刪除功能會導致重復導入provisioning profile

原因2:鑰匙串沒有授權,被鎖住了。 訪問簽名失敗

解決辦法:

     方法1:編譯之前解鎖鑰匙串    

     在編譯之前解鎖鑰匙串,命令行如下:

          security unlock-keychain -p "123456" ~/Library/Keychains/login.keychain  

          -p后面是你的mac的登陸密碼,根據自己的實際情況輸入。

辦法2:刪除provisioning pfofile

      Xcode 中所有的PP文件,都在 ~/Library/MobileDevice/Provisioning Profiles 這個文件夾下;進入該文件夾,刪除不需要的;用xcode運行一次,會重新下載有效的新的 provisioning pfofile;如果你不知道哪些是不需要的,你可以把~/Library/MobileDevice/Provisioning Profiles/下的文件全部移動到其他路徑下備份。

    必要時,重啟mac

 

上面兩種方法,可以配合使用,如果一種不行,就兩種一起用,我是使用了解鎖keychain就搞定了,但是看到我的~/Library/MobileDevice/Provisioning Profiles/下有90多個文件,我還是使用了刪除provisioning pfofile的辦法,不影響使用。

 

參考:

https://www.jianshu.com/p/bde2fbf1dd09

https://blog.csdn.net/weixin_30376509/article/details/98651263


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM