问题标签 [productsign]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1926 浏览

macos - 如何将 productsign 与包含较小签名 pkg 文件的 mpkg 一起使用?

我有一个父安装程序包,比如说,Parent.unsigned.mpkg我想用 OS X 签名productsign

该文件Parent.unsigned.mpkg包含名为A.pkg,B.pkg和的子包C.pkg,它们依次安装 Clang 编译的命令行二进制文件和bash包装脚本:

我注册了一个 Mac 开发者帐户,该帐户设置(在其他证书中)带有 ID 的开发者 ID 安装程序证书ABCD1234(此 ID 实际上与我的 Apple ID 不同且特定于我的 Apple ID。)我使用该security工具获取此 ID 值:

我使用此 ID 值对这些子包中的每一个进行签名,这似乎毫无意外地进行:

然后,我将这些签名的子包移回其原始文件名:

当我尝试productsign使用父包时,我收到以下警告消息:

当我尝试验证安装程序是否已签名时,我收到一条拒绝消息:

我正在使用此处此处列出的 Apple 说明。

未签名的安装程序可以正常工作,但它需要绕过 OS X Gatekeeper。因此安装程序包和内容似乎是正确的(或至少可以正常工作)。

我缺少哪些步骤或程序来生成与 OS X Gatekeeper 一起使用的数字签名安装程序?

0 投票
2 回答
4812 浏览

macos - productsign mac .pkg 安装程序

我需要使用 .pkg 扩展名签署 MacOS 安装程序。我有一个 .pfx 证书并将其添加到钥匙串中。它包含证书和私钥。

但是,当我尝试使用productsign实用程序对此 .pkg 进行签名时,它会显示错误:

productsign --sign "commonName" unsigned.pkg signed.pkg

productsign:错误:找不到“commonName”的适当签名身份。签署平面样式产品需要安装程序签名身份(不是应用程序签名身份)。

0 投票
0 回答
580 浏览

macos - productsign 无法从钥匙串中找到证书

我们正在尝试使用以下命令对 Mac 安装程序(.pkg 文件)进行签名。

但是我们收到以下错误。

当我们尝试使用 查找证书security -v find-identity -p codesigning时,我们得到以下输出。

您能给我们提供有关如何解决和解决此问题的任何信息吗?

0 投票
1 回答
2253 浏览

macos - 为什么签名无效?

我正在尝试签署我的包裹以供自己分发。

这是正确的。

顺利。

可疑的...

看起来很完美。

但是当我启动 Signed.pkg 时:

为什么?

PS阅读Apple网站-证书是正确的,对吗?

0 投票
1 回答
1032 浏览

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

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

无效签名- 当您错误地签署了应用程序的安装程序时,会发生此错误。此过程需要两个证书:“3rd Party Mac Developer Application”证书和“3rd Party Mac Developer Installer”证书。对包进行签名时,您需要确保使用安装程序证书对包进行签名。确保在通过 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 文件并对其进行签名。起初,我分两个单独的步骤进行操作。对于傻笑,我尝试一步一步地添加--sign参数productbuild,但我得到了相同的结果。命令如下所示:

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

在此处输入图像描述

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

在此处输入图像描述

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

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

0 投票
1 回答
1174 浏览

macos - 如何使用 productsign 在 OSX 上签署 APP 安装程序?

我从 Apple 获得了安装程序证书,我的安装程序是自定义 APP(没有 pkg​​ 或其他东西)。现在如果我跑

它只是这样说:

我认为它是错误的或什么的,但也许它只是不喜欢 APP 文件。有任何想法吗?

0 投票
1 回答
380 浏览

macos - 使用 productsign 签署 XAR 正在破坏存档文件

我正在尝试使用productsign来签署XAR包含 2 个pkg使用productbuild. 该xar工具正在正确创建文件,但我认为签名正在破坏内容,即使获得的文件已签名。下面的一些相关命令输出(我用 替换了敏感信息INFO):

productsign命令是否打算以其他方式工作?我不明白我的方法有什么问题。

0 投票
1 回答
401 浏览

macos - OSX - 签名安装程序被拒绝

我正在使用以下内容来签署我的安装程序:

输出如下:

后来,我检查我的安装程序并获得以下信息:

有什么线索吗?

0 投票
1 回答
765 浏览

bash - Teamcity:Mac 构建代理无法使用 productsign 对 .pkg 文件进行签名。SignData 失败:CSSMERR_CSP_NO_USER_INTERACTION (-2147415840)

设想:

在我们的 TeamCity 构建完成后,我有一个需要使用 TeamCity 签名的 .pkg 文件。

理想情况下,这可能是最后运行的构建步骤或脚本。经过研究,我尝试了以下方法:

脚本输入:

输出:

问题:

我注意到许多解决方案都提到了在对话框提示中单击“始终允许”第一次出现时提到钥匙串的访问控制,但是我唯一已知的与此构建代理的交互是通过 SSH。有没有办法在 Teamcity mac 构建代理上使用 productsign 签署 .pkg,而无需与此“始终允许”提示进行 gui 交互?或者,有没有办法登录到构建代理并查看 gui,以便我可以单击“始终允许”来启用它?

注意:我还尝试将(本地签名机)私钥的访问控制保存为“允许所有应用程序访问此项目”,将其导出,将其导入构建代理的 login.keychain,然后再次尝试上述操作,仅有相同的输出。当我在我的 macbookpro 上执行相同的过程时,一切正常,但是我不记得我是否确实从很久以前单击过“始终允许”。

有什么想法吗?非常感激。

0 投票
1 回答
208 浏览

macos - GitHub Actions:productsign 挂起

我在使用 GitHub Actions 时遇到问题。当我打电话时productsign,工作就挂了。在搜索互联网时,该工作似乎试图向用户询问密码,但我没有从日志中得到任何错误或反馈。这项工作永远挂起。在我自己的计算机上运行时,一切都按预期工作,并且 .pkg 已签名。

我在工作流程中的步骤如下

我尝试了很多不同的解决方案,但没有任何效果

  1. security import ${P12_FILE} -k ${KEYCHAIN_PATH} -P ${P12_PASSWORD} -A
  2. security import ${P12_FILE} -k ${KEYCHAIN_PATH} -P ${P12_PASSWORD} -T /usr/bin/productsign
  3. 使用设置分区列表security set-key-partition-list
  4. 创建一个新的钥匙串/解锁钥匙串
  5. 切换到使用 --sign 参数productbuild(添加 --sign 时也会挂起)
  6. fastlane match完全没有手动导入证书
  7. 我认为在谷歌上找到的任何其他解决方案

有任何想法吗?这是 GitHub Actions 中的错误吗?