最近打包一个项目,同样的项目在9.4.1的Xcode中打包正常,在另一台电脑上10.1的Xcode中打包编译报错。
重要信息:其实打包时编译完它弹窗提示我输入登录钥匙串的密码,其实我没太在意,试了几个密码也不对,然后我就把这个窗口关掉了(其实点的是“拒绝”),事实上这是导致我最终错误的根本所在,忘记截图了,具体过程在下面。
Command PhaseScriptExecution failed with a nonzero exit
解决:这是因为Xcode10是默认选中的最新的New Build System(Default),在这个编译系统的环境下,打包的CI脚本一直会报错。
Xcode10 修改 Workspace SettingXcode菜单栏选择File -- Workspace Setting,
把new build system(Defalt)切换到 Legacy Build System 。
再打包尝试,这个问题没有了,但是出来新的报错:
Command /bin/sh failed with exit code 1
网上查阅各种资料,最终解决方案是:
重启电脑
之后再次打包时会再次提示输入钥匙串密码
,证实钥匙串密码和开机密码是同一个,然后点击“允许”或者“始终允许”,输入密码后编译通过,正常导出打包。
网上查到的其他方案有这么几个:
方案一:
- 选中项目 -> TARGETS->Build Phases-> “Bundle React Native code and images”
- 勾选 “Run script only when installing”
- clean
这个我的情况不好使。
方案二:
可能是钥匙串的原因
没有试这个方法,但是感觉重启电脑解决的也是钥匙串这个问题,为了避免操作钥匙串出现其他问题,我还是选择重启,更简单些。
PS
导出之后发现证书和描述文件都显示没有,查证这是Xcode10.1的bug,可以更新Xcode解决。
Xcode10.1导出bug
网友评论