提交到 Mac App Store 时不断为应用程序的安装程序提供“无效签名”

Posted

技术标签:

【中文标题】提交到 Mac App Store 时不断为应用程序的安装程序提供“无效签名”【英文标题】:Submitting to Mac App Store keeps giving "Invalid Signature" for app's installer 【发布时间】:2016-02-15 03:05:29 【问题描述】:

我正在尝试向 Mac App Store 提交一个应用程序(使用 Qt 5.4.2(怀疑它很重要,但包括以防万一)),但由于某种原因,我不断收到以下错误:

无效签名 - 当您签署了应用的 安装程序错误。此过程需要两个证书: “第 3 方 Mac 开发者应用程序”证书和“第 3 方 Mac 开发人员安装程序”证书。在为您的包签名时,您需要 确保您使用安装程序证书来签署您的包。 确保在通过以下方式提交您的应用程序时指定此证书 Xcode Organizer 或从命令运行 productbuild 时 行。

当我在 10.10.4 上使用 Xcode 6.4 时,我在 Application Loader 中遇到了这个错误。在进行了通常的搜索之后,我能找到的所有关于这个问题的参考资料都是 3-4 岁的。在一个旧答案中,有人提到升级 OSX 和 Xcode 为他们修复了它,所以我想出了什么问题。

我升级到 OSX 10.11.13 并使用 Xcode 7.2.1(以及 Application Loader 3.4 (902))进行编译,起初我想“哦,嘿!错误消失了!”因为应用程序加载器不再显示它。但是现在,一旦 Application Loader 上传它,我就会在电子邮件中收到相同的错误(如上所示)!

我有一个 Python 脚本,它在 Qt 框架中进行大量复制、修复和签署二进制文件,然后它所做的最后两件事是创建 PKG 文件并对其进行签名。起初,我分两个单独的步骤进行操作。对于傻笑,我尝试在productbuild 步骤中添加--signargument,但我得到了相同的结果。命令如下所示:

print ("Creating the PKG")
subprocess.call([r'/usr/bin/productbuild', 
    r'--component',
    bundleFolder+ '/MyApp.app',
    r'/Applications',
    r'MyApp-Installer.pkg',
    r'--sign',
    r'3rd Party Mac Developer Installer: My Name (12345XXXX)',
])

#print ("Creating the Signed PKG")
#subprocess.call([r'/usr/bin/productsign', 
#   r'--sign',
#   r'3rd Party Mac Developer Installer: My Name (12345XXXX)',
#   r'MyApp-Installer.pkg',
#   r'MyApp-Installer-Signed.pkg'
#])

另外,FWIW,这是我一年多以来第一次尝试更新应用程序(我知道:()并且这是一台新机器。所以,我删除了开发人员中的证书门户(developer.apple.com),重新创建它们,然后导入/安装/下载它们。实际上,我已经做了好几次试图弄清楚。上次我通过 Xcode 创建它们。所以钥匙串访问看起来像:

我在开发者门户中的视图如下所示:

但是,我可能会提到另一件事(我不确定它是否重要),每次我将这些新证书添加到 Keychain 时,无论是在 Xcode 中执行,还是创建、下载和导入主要是证书,我必须鼠标右键单击证书并转到获取信息 -> 信任并将“代码签名”从“未指定值”更改为“始终信任”。 p>

我试图提供很多细节,希望有人可以帮助我查明我做错了什么。如果有人有任何建议或想法,我将非常感激!

【问题讨论】:

原来我的根证书已经过期了!这也解释了(我认为)为什么我必须做上面提到的“获取信息”。但是,我按照以下链接中的步骤操作,到目前为止看起来不错:***.com/questions/35390072/… 【参考方案1】:

两种可能的解决方案

我两次遇到这个问题,每次都是出于不同的原因。

第一次,我检查钥匙串中的证书,我发现重复的证书。我删除了重复项(保留了过期时间最长的),问题解决了。

第二次,我换了一台新的笔记本电脑作为我的开发机器,我的钥匙串中没有相关的证书。我从https://developer.apple.com/account/mac/certificate/ 下载并安装了它们,问题解决了。

所以我猜这个问题与您钥匙串中的证书有关。只需确保您拥有正确的证书集,没有丢失、没有重复、没有过期。

【讨论】:

以上是关于提交到 Mac App Store 时不断为应用程序的安装程序提供“无效签名”的主要内容,如果未能解决你的问题,请参考以下文章

是否可以提交到不包括 OsX Mavericks 的 Mac App Store 下载

提交 Mac App 时签名无效

在 Mac App Store 上提交 Qt 5.3 应用程序以供审核

是否必须为 Mac App Store 应用程序配置权利?

无法向 Mac App Store 提交应用程序:“未创建任务。”

Mac App Store 提交后二进制文件无效。可能架构不匹配