代码签名框架失败,出现“权限被拒绝”错误

Posted

技术标签:

【中文标题】代码签名框架失败,出现“权限被拒绝”错误【英文标题】:Code signing a framework fails with "Permission denied" error 【发布时间】:2020-12-25 01:11:47 【问题描述】:

我最近将Plantronics macOS SDK (Spokes3GSDK.framework) 添加到我的 Electron 桌面应用程序中。

当我尝试签署应用程序时,它失败并出现“权限被拒绝”错误。

  ⨯ Error: Command failed: codesign --sign IDENTITY_HASH --force --timestamp --options runtime --entitlements ./setup/build/entitlements.mac.plist /private/var/lib/jenkins/workspace/MY_BRANCH/compile/mac/MY_APPLICATION.app/Contents/Frameworks/Spokes3GSDK.framework/Versions/A/Spokes3GSDK
/private/var/lib/jenkins/workspace/MY_BRANCH/compile/mac/MY_APPLICATION.app/Contents/Frameworks/Spokes3GSDK.framework/Versions/A/Spokes3GSDK: replacing existing signature
/private/var/lib/jenkins/workspace/MY_BRANCH/compile/mac/MY_APPLICATION.app/Contents/Frameworks/Spokes3GSDK.framework/Versions/A/Spokes3GSDK: Permission denied

我正在使用electron-builder 来构建和签署我的应用程序,因此我还创建了一个问题here。不过,这个问题似乎真的是由codesign 工具引起的。

【问题讨论】:

授予文件写入权限 sudo chmod 777 filepath 谢谢@tpikachu,我会试试这个,但你认为更改权限安全吗?我的意思是我只是在使用这个 SDK,不确定我是否应该弄乱它的文件。 确定是安全的。 777 表示授予所有人读写权限。 chmod u=wx 文件(给所有者 wx 权限) 【参考方案1】:

对我来说,问题是 jenkins 正在复制 SDK 文件而不更改所有者“root”。因此,需要sudo 才能使此命令正常工作。

我手动复制了这些文件并将它们放入我的存储库(文件的所有者已更改)并且不再需要 sudo

【讨论】:

以上是关于代码签名框架失败,出现“权限被拒绝”错误的主要内容,如果未能解决你的问题,请参考以下文章

在 macOS Monterey 上出现此错误:代码签名“AppAuth.framework”失败

上传错误代码签名 Mapbox.framework 失败

如何熟悉代码签名问题?

代码签名错误:SDK“iOS 11.0”中的产品类型“应用程序”需要代码签名

用PHP做微信支付签名错误,请教一下这个是啥原因

如何修复:“代码签名操作失败(检查您选择的身份是不是有效错误)”应用提交错误