xcode自动化打包遇到errSecInternalComponent错误

flutter项目在Mac上打包iOS项目,在有UI界面的情况一点问题都没有,但是如果是通过ssh登录,远程进行打包,就会出现如下错误: 

Error (Xcode): Target release_unpack_ios failed: Exception: Failed to codesign
...

说明是codesign失败,也就是证书签名之类。其实正常在有UI的界面上,会弹框让输入密码确认,但是ssh登录状态下,是无法弹框的,所以就出现此错误。

进一步验证,查询在keychain中的签名证书:

security find-identity -p codesigning login.keychain

然后随便找一个证书对某个文件进行签名:

codesign --force --sign BBD7BF414D06C83D...CA21A1537409 abc.txt

有UI界面的terminal上会返回:

abc.txt: replacing existing signature

没有UI界面的terminal上会返回:

abc.txt: errSecInternalComponent

解决办法就是通过密码解锁keychain:

security unlock-keychain -p xxxx login.keychain

这样就会暴露密码在脚本里,不过公共打包机密码好像大家也都知道,但为了保险起见,还是base64编码一下,所以就变成:

security unlock-keychain -p`echo XXXX | base64 --decode`

于是又可以愉快的自动化打包了。

发表于 2023年12月30日 23:48   评论:0   阅读:267  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo