为啥我的包裹被归类为危险包裹

Posted

技术标签:

【中文标题】为啥我的包裹被归类为危险包裹【英文标题】:Why is my package categorized as dangerous package为什么我的包裹被归类为危险包裹 【发布时间】:2017-03-20 17:41:56 【问题描述】:

OSX 10.12.3,我有一个使用 EV 代码符号进行代码签名的包。

$ codesign --force --sign "3rd Party Mac Developer Application: myname (code...)" mypackage.pkg

但是当有人下载​​并尝试在 OSX 中安装它时,他们都会得到以下结果:

在英文中同样的对话框:“App can't be opening because it is from an unidentified developer”

当我检查代码符号时,我可以看到它的工作:

$ pkgutil --check-signature mypackage.pkg
Package "mypackage.pkg":
   Status: no signature

$ codesign -dv --verbose=4 mypackage.pkg
Executable=/Users/xxx/xxxxxx
Identifier=xxxx
Format=generic
CodeDirectory v=20200 size=177 flags=0x0(none) hashes=1+2 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=xx
CandidateCDHash sha256=xx
Hash choices=sha1,sha256
CDHash=xxxxx
Signature size=4715
Authority=3rd Party Mac Developer Application: xxxxx
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=1xxx
Info.plist=not bound
TeamIdentifier=xxxxx
Sealed Resources=none
Internal requirements count=1 size=196

如何确保正确完成?这样它就不会吓到 OSX 用户,我在这里缺少什么?

【问题讨论】:

您可能应该说明错误消息,因为我没有看到它(或将其翻译成英文,因为该消息可能在 Google 上有很多点击)。 【参考方案1】:

代码签名身份“3rd Party Mac Developer Application: ”用于在将应用提交到应用商店之前对其进行签名。它对于在应用商店之外分发没有用处。

要签署应用程序包以在应用商店之外分发,请使用“开发者 ID 应用程序:”身份。

然而,您说您正在签署一个“包”并显示了一个带有 .pkg 文件扩展名的文件。要签署安装程序包,请使用“开发人员 ID 安装程序:”身份。此外,您应该使用@ 987654324或适当的选项到pkgbuildproductbuild,而不是codesign,签署安装程序包。

【讨论】:

先生,我的包是 .pkg,其中包含预编译的 .app。那么我应该先签署 .app 再签署 .pkg 吗? (在使用 pkgbuild 或 productbuild 时,我是否使用从 Global sign 购买 3 年的 EV 代码签名?) 在构建安装程序包之前签署您的应用程序包不会有什么坏处,但我认为没有必要。我不确定你的第二个问题是关于什么的。您需要使用来自 Apple 的正确类型的证书进行代码签名。使用来自其他来源的证书进行签名并不能帮助您使用 Gatekeeper(这是在您的问题中显示对话框的内容)。 先生,它起作用了(签署我的包含 .app 的 .pkg)。但我有最后一个问题。我需要签署 .app(第三方开源二进制文件),所以当我访问我的苹果帐户时,我找不到 "Developer ID Application: <Team Name>" 参见图片:i.imgur.com/7qim3oh.png 和 i.imgur.com/25Oba2j.png 第一个屏幕截图实际上显示了一个单选按钮,用于创建您的 Developer ID 应用程序证书。您还可以使用 Xcode 自动创建和下载证书。见developer.apple.com/library/content/documentation/IDEs/…。

以上是关于为啥我的包裹被归类为危险包裹的主要内容,如果未能解决你的问题,请参考以下文章

为啥 flexbox 在包裹项目时不向下推后续内容?

为啥我的组件没有包裹在 Swing 的 FlowLayout 中?

为啥在 React 中,当父组件重新渲染时子组件不会重新渲染(子组件没有被 React.memo 包裹)?

邮件服务器上的 SSL 证书是不是会降低电子邮件被归类为垃圾邮件的可能性?

当时间戳未被归类为索引时,如何按时间戳对数据帧进行切片?

牛顿法会被归类为梯度下降法吗?