代码签名框架失败,出现“权限被拒绝”错误
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”失败