jam*_*s0n 6 code-signing code-signing-certificate codesign electron electron-builder
我有一个电子应用程序,最初是随个人开发人员的证书一起分发的。
我现在想使用我组织的证书签署该应用程序的下一个更新,但是当我这样做时,现有安装(在自动更新时)会抛出不满足代码要求的错误。
有没有办法使用旧证书和新证书正确签署电子应用程序?我想防止我现有的用户被打扰。
任何帮助表示赞赏!
谢谢
我们遇到了类似的情况,MacOS 的 Electron 应用程序使用自动更新,我们需要切换到新证书,而不需要让每个人手动下载并重新安装应用程序。自动更新过程需要识别新证书。理所当然地,如果新证书不被识别,旧版本将拒绝更新。
我们的策略是:
designated requirement
应用程序的(或 DR),当使用旧证书签名时,使用codesign -d -v -r - <path-to-app>
designated requirement
使用新证书签名时查看应用程序的designated requirement
包含两个证书的组合放入一个electron-builder-requirements.txt
文件中identifier
在组合designated requirement
字符串中包含electron-builder-requirements.txt
对electron-builder.yaml
文件中的进行引用(在mac:
这样的下面添加一行requirements: electron-builder-requirements.txt
)electron-builder-requirements.txt
文件具有包含有关两个证书的信息的 DR 的旧版本应用程序将允许自动更新到使用任一证书的新版本。
我发现这份关于手动签署代码的文档有助于理解“指定要求”。
更新:这是该electron-builder-requirements.txt
文件的示例(出于隐私目的,我修改了一些字母/数字):
designated => certificate leaf = H"2323ce6b0XXXXXXXX39f2064be999999997272b1" or anchor apple generic and certificate 1[field.1.2.840.199995.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.199995.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "6ZXXXXXXUY"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1530 次 |
最近记录: |