Mac App Store 权利 - 代码对象根本没有签名

Posted

技术标签:

【中文标题】Mac App Store 权利 - 代码对象根本没有签名【英文标题】:Mac App Store entitlement - code object is not signed at all 【发布时间】:2014-10-16 14:20:31 【问题描述】:

我一直在尝试向 Mac OSX 商店提交应用更新,但我的所有提交都被拒绝,并出现错误“代码对象根本没有签名”

我一直在像这样对权利进行代码签名:

codesign -f -v -s "3rd Party Mac Developer Application: My Company (XXXXXXXXXX)" MyApp.app/Contents/entitlements.plist
codesign -f -v -s "3rd Party Mac Developer Application: My Company (XXXXXXXXXX)" MyApp.app
codesign -f -v -s "3rd Party Mac Developer Application: My Company (XXXXXXXXXX)" --entitlements MyApp.app/Contents/entitlements.plist MyApp.app

如果我然后执行以下操作:

codesign --display --entitlements - MyApp.app

我得到了权利文件的内容以及一些不寻常的字符:

??qq%<?xml version="1.0" encoding="utf-8"?>
<plist version="1.0">
    <dict>
        <key>com.apple.security.app-sandbox</key>
        <true/>
        <key>com.apple.security.files.user-selected.read-only</key>
        <true/>
        <key>com.apple.security.network.client</key>
        <true/>
</dict>

这表明权利经过代码签名并正确显示。

我试过 RB App Checker Lite,它说一切都很好,但是当我尝试使用 spctl 时:

spctl --assess --type execute MyApp.app

我明白了:

MyApp.app: rejected

我不太确定从这里去哪里。

提前致谢。

【问题讨论】:

【参考方案1】:

不确定这是否与我的情况相同,但我需要从应用程序包中删除权利文件并将其与捆绑包一起签名:

codesign -f -s "3rd Party Mac Developer Application" -v "DA-FormMaker.app" —-deep --entitlements Entitlements.plist

我使用的是 Delphi XE4,过去授权文件是由 Delphi 放在捆绑包中的。

我从捆绑包中删除了 Entitlements.plist 并对其进行了签名。之后该应用程序被接受。

安迪

【讨论】:

以上是关于Mac App Store 权利 - 代码对象根本没有签名的主要内容,如果未能解决你的问题,请参考以下文章

上传到 App Store 时出错“缺少代码签名权利”

向 App Store 提交二进制文件 - 无效的代码签名权利

可执行文件已使用 App Store 使用无效权利进行签名

iOS App Store 促销代码显示“必须使用 Mac 兑换”

错误 App Store Connect:“ITMS-90683:Info.plist 中缺少目的字符串”和“ITMS-90078:缺少推送通知权利”[Flutter]

Mac 应用程序 |代码签名 |不通过 Mac App Store 分发 [关闭]