如何在其中对 dmg 和 App 进行代码设计?

Posted

技术标签:

【中文标题】如何在其中对 dmg 和 App 进行代码设计?【英文标题】:How to codesign dmg and App inside it? 【发布时间】:2018-04-10 08:34:45 【问题描述】:

我有一个带有应用程序的 dmg。我已经购买了苹果开发者许可证,并且我已经成功地使用开发者证书签署了 dmg。我检查了 dmg 它已被 Gatekeeper 签名并成功接受。我使用 Sierra 10.12.5 进行编码

然后我复制并运行了安装程序和应用程序。 但是运行应用程序抛出无法打开,因为它来自身份不明的开发人员。

运行应用程序会引发身份不明的开发人员

codesign --verify --deep  --verbose=2 MyQt.app
MyQt.app: code object is not signed at all
In architecture: x86_64

是否可以对 dmg 和递归所有内容(包括应用程序)进行共同设计?

【问题讨论】:

【参考方案1】:

您应该使用Developer ID 证书签署.app 如果您是团队,您可以在 developer.apple.com 上生成它

codesign --force --deep -s DeveloperIDCertificate --keychain pathToKeychain YourApp.app

--force 将复制您之前的签名

--deep 将递归地签署您的内容

-s DeveloperIDCertificate 将通过身份签署应用程序。应该是这样的:-s 123C3FF2VA

--keychain 是 keychain 数据库文件夹的参数,对于 Sierra 通常是 /Users/username/Library/Keychains/login.keychain-db

【讨论】:

安德鲁,我在 ubuntu 中编译了 dmg,所以我无法从 dmg 中提取 .App 进行签名。有办法吗? 你有没有想过? 试试这个给了我:“‹id›: no identity found”。如果我使用自签名证书而不是 Developer ID 证书,它会起作用,但这显然不是解决方案。 @KonradRudolph,请检查身份。此外,您应该在带有私有部分的钥匙串中拥有 DeveloperID 证书。 @AndrewVergunov 嗯,我认为这就是问题所在:我在钥匙串中有证书,但我怀疑它缺少私钥组件。不确定这是怎么发生的(我从一位负责我们组织中的 Apple Dev ID 的同事那里得到了 .cer 文件)。

以上是关于如何在其中对 dmg 和 App 进行代码设计?的主要内容,如果未能解决你的问题,请参考以下文章

前端即时进度汇报

如何在捆绑电子应用程序之前对其进行编码(对于Mac)?

mac 打包dmg

如何找基于,SSM的论文设计代写

做信用卡智能代还APP必须了解的几点

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