对称性描述
当ssh进入运行10.15.1 (Catalina)的mac (或使用通过ssh连接的节点通过Jenkins连接)时,如果我试图构建xcode项目(构建iOS移动应用程序),协同设计阶段将失败,错误如下:
Execution policy exception registration failed and was skipped: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" (in target 'myproj' from project 'myproj')
在几个地方(总是在我打电话给codesign的时候)
我已经尝试过的
最初我遇到的问题是,我收到了一个"errSecInternalComponent“,而构建失败了。
我尝试添加调用来显式地解锁我的签名证书所在的登录密钥链(安全解锁-密钥链),这有助于解决这个问题,但操作不允许消息持续存在。
我证实,直接从mac命令行在终端窗口中的命令行构建是很好的。此问题仅适用于通过ssh进行的连接。
我更新了系统首选项-->隐私和设置-->开发工具,允许我想出的每一个程序都可能相关(包括所有xcode工具、codesign、java和其他一些我认为可能与Jenkins可能尝试做的事情相关的工具),但这本身并没有什么区别。
我尝试在Jenkins创建一个新的mac节点,该节点通过JNLP连接,以查看这是否有帮助,但得到了相同的结果。
我从OS恢复分区禁用了csrutil,但这没有帮助。
我把我的证书移到系统密钥链上,看看这是否有帮助。事实并非如此。
这个版本在较老的machine (预T2安全芯片)上运行良好,但这台新机器是一台带有T2芯片的较新的machine。为了排除一切,我甚至在安全启动时降低了安全级别,但没有产生任何影响。
老机器也没有运行Catalina。
还有人碰过这个吗?如果是的话,你想明白了吗?
发布于 2020-02-10 20:48:19
抱歉,我的反应太晚了--我确实碰到了这个问题,而修复它的东西是通过了UseModernBuildSystem=NO.?!
编辑:我还花了很多时间处理Jenkins shell调用。我知道,如果我登录到机器(物理),我的构建命令(通过fastlane)工作。我可能还使用了登录来调用它。
在我的jenkinsfile里,我有这样的东西:
def loginShell(cmd) {
sh """#!/bin/zsh --login
export LANG=en_US.UTF-8
${cmd}
"""
}当调用快速车道命令(即引擎盖下的xcodebuild )时,我的所有车道都会调用此命令。
有一件事我不太走运,那就是找出zsh是否有一个--login仿真器。我知道bash是这样做的--所以如果它对你不起作用,就把你的头发换成巴什吧;)
它似乎找到了我所有的$PATH垃圾,所以我想它起作用了。
https://stackoverflow.com/questions/59058744
复制相似问题