我如何摆脱Apple Developer Id证书混乱

时间:2018-06-19 12:17:07

标签: macos certificate keychain apple-developer

免责声明,我不是Java开发人员,而是Java开发人员,因此很少使用Apple专用工具。

我开发了一个Java应用程序,并在命令行中以如下方式使用Apple Developer Id证书对其进行签名

export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"

/usr/bin/codesign --sign "Developer ID Application: P Taylor" --force --deep --verbose /Applications/SongKong.app
/usr/bin/codesign --verify --deep  --verbose /Applications/SongKong.app

不幸的是,当我今天尝试构建时,由于证书在几天前过期而出现错误,它最初是5年前创建的。

因此,我续签了Apple Developer会员资格(该会员资格也已经过期),并最终找到了一种使用 KeyChain 的方法来创建CertificateSigningRequest.certSigningRequest文件,然后将该文件上传到Apple,并生成了developerID_application.cer文件。我打开了它并将其添加到KeyChain

然后我重新运行我的构建,但是失败了,因为它现在找到了两个证书

然后我删除了旧的过期证书并重新运行,这一次,我似乎不得不通过输入KeyChain密码来授予使用证书的权限。不幸的是,这似乎与我的主要Mac密码不同,因此我最终不得不强制退出并重新启动。

为了重置KeyChain密码,我按照在线步骤操作

Open KeyChain Access
From the KeyChain Access menu, choose Preferences.
Click General, then click Reset My Default KeyChain.

然后我重新运行构建,但是尽管证书似乎存在,但它报告“未找到身份”。我想是因为创建了新的KeyChain,所以我删除了我的个人身份(这是证书颁发机构吗?)。

所以现在我只有开发人员ID证书,而没有其他部分,也不知道该怎么办。

问题1 :当我选择重置我的默认钥匙串时,它说旧钥匙串保存在某个地方,所以我的第一个问题是我可以再次将其设为默认值吗?可能有一种方法可以实际重置密码,或者我将能够猜到它。

问题2 :如果我不能执行Qu.1,该怎么做才能重新创建我现在缺少的个人证书部分。请记住,这只是因为用户可以在我的Mac上安装我的软件,而不会收到有关不受信任的开发人员的警告。

1 个答案:

答案 0 :(得分:0)

好了,我解决了,我按照these的说明进行操作,以便基本上恢复以前的钥匙串

  • KeyChain访问中,选择删除钥匙串“登录” ,并确保在出现提示时选择 Delete References ,而不是 Delete References&Files
  • 打开 Finder ,然后转到文件夹〜/ Library / Keychains
  • login.keychain 重命名为 login.keychain.old
  • login-renamed-1.keychain 重命名为 login.keychain
  • KeyChain访问中,选择“添加钥匙串”,然后选择 login.keychain 文件
  • 重新启动 KeyChain访问以查看正确的结果

但是然后我仍然遇到一个问题,当我尝试签名时,系统提示我输入KeyChain密码,但我不知道该密码.....

但是在 KeyChain Access 中,我去了 Edit:更改钥匙串“登录”的设置 然后输入我认为的旧密码和新密码,即使我使用密码对其进行签名失败,它也接受了更改

然后我运行登录并在出现提示时输入新密码,并接受了该密码。

我验证了签名,上载了版本,下载,安装并运行了该版本,以确保该版本没有问题并且很好。因此,我希望这个答案能帮助其他非Apple开发人员在他们的工具上苦苦挣扎