如何在其中对 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 进行代码设计?的主要内容,如果未能解决你的问题,请参考以下文章