【问题标题】:Having issue with allowing codesign to use my keychain允许 codesign 使用我的钥匙串时遇到问题
【发布时间】:2015-11-12 09:03:55
【问题描述】:

我正在使用El Capitan 和 Xcode 7.1,我正在尝试构建和归档我的应用程序以上传到应用商店。编译后弹出此警报:

但是Always AllowAllow按钮根本不起作用,但是Deny取消警报!我应该如何解决这个问题?我正在使用新的 iMac,并将旧 Mac 上的所有数据转移到新的 Mac 上。当网站想要从钥匙串访问密码时,Safari 甚至会出现此问题。

这是控制台日志:

SecurityAgent[1476]:忽略用户操作,因为对话框有 从不受信任的来源收到事件

我已经查看了这个question,但我没有分享任何东西!

【问题讨论】:

  • 你有没有修改过 Xcode.app 的内容?它可能破坏了 Xcode 签名,因此该应用程序将不受信任,我建议尝试将其删除并执行全新安装。

标签: ios iphone xcode code-signing keychain


【解决方案1】:

找到了解决办法:

就操作系统而言,Alfred、TextExpander 或 MagicPrefs 等第三方实用程序似乎会“控制”窗口。你可以通过禁用它们来找到罪魁祸首,然后一个一个地打开它们,直到你找到一个(或多个)以这种方式影响 Keychain 的东西。 信用:https://apple.stackexchange.com/questions/212622/keychain-wont-let-copy-passwords-after-10-11-1-update

就我而言,我刚刚卸载了 MagicPref 应用程序,问题就解决了

【讨论】:

  • 同样帮助了我。禁用 MagicPrefs,一切正常。
  • 平滑鼠标也会影响这一点。您需要杀死 SmoothMouseDaemon 才能允许。但是已经打开的对话框仍然没有响应,只有当它再次出现时您才能允许。
  • 我在使用 Synergy 时遇到了同样的问题。杀死它可以让我按“始终允许”
【解决方案2】:

不确定您是否已经弄清楚了,但前几天我遇到了这个确切的问题。你的 Xcode build box 是远程的吗?是否启用了 ARD/VNC? Apple 最近发布了 CVE-2015-5943“恶意应用程序可以以编程方式控制钥匙串访问提示”的更新,因此在使用 VNC/ARD 时始终允许/允许按钮不起作用。可能导致该错误出现的另一件事是修改系统输入的应用程序,例如 Smoothmouse 或 MagicPrefs。

您可以通过重新导入私钥并在导入时信任 codesign 二进制文件来解决此问题。如果您没有原始私钥 .p12 文件,您可以将其从钥匙串中导出。在重新导入之前,您需要从钥匙串中删除私钥(确保您首先在某处备份了私钥!!)。

要导入并信任 codesign 二进制文件,您可以使用此命令。

security import /tmp/my-cert-path.p12 -k /Users /xcodeuser/Library/Keychains/login.keychain -P mysupercoolprivatekeypassword -T /usr/bin/codesign

如果您需要继续将受信任的应用程序添加到私钥,我肯定会确保从现在开始将您的开发人员私钥备份到其他地方。如果您丢失了私钥并且无法从 Keychain Access 导出,如果您没有本地访问权限(我们使用远程托管的 Mac Mini),您可能需要重新生成它。

您发布的日志条目是正确的。

SecurityAgent[1476]: Ignoring user action since the dialog has received events from an untrusted source

'关于 OS X El Capitan 10.11.1、安全更新 2015-004 Yosemite 和安全更新 2015-007 Mavericks 的安全内容' https://support.apple.com/en-us/HT205375

面临同样问题的其他人:

El Capitan + Xcode 7.1 not letting me allow enterprise signing

https://superuser.com/questions/1004881/osx-10-11-1-keychain-access-does-not-allow-change-to-access-permission

http://nerdanswer.com/answer.php?q=1181710

【讨论】:

  • 我一直在 El Cap 上尝试这个安全导入命令,它似乎忽略了我导入和信任用于协同设计的密钥的请求。让它尊重信任选项的任何技巧(尝试了-T和-A)?我通过 VNC 在终端上运行此命令,因为我没有对机器的物理访问权限。
  • @PaulBuchanan 这就是我正在处理的情况,您是否在再次尝试导入之前删除了现有的钥匙串项目?该命令仅在我首先删除钥匙串项目时才对我有效,如果该项目已经存在,它将不会更新它。
  • 刚刚更新了这个欧文,我发现你必须在私钥上指定应用程序,而不是证书。像这样:security import ~/Desktop/<exported-certificate>.p12 -k "/Users/<user>/Library/Keychains/login.keychain" -t priv -P <password> -T /usr/bin/codesign -T /Applications/Utilities/Keychain\ Access.app。因此,只需删除证书下方显示的私钥,然后再次导入以添加新应用。
  • 最新版本的 El Capitan 10.11.4 beta 7 已经修复了这个问题,因此即使通过 VNC 登录,您也可以再次允许访问钥匙串中的证书。
  • 太棒了,感谢@Pegolon 的提醒。很高兴听到它。
【解决方案3】:

我遇到了同样的问题,我找了很长时间。实际上,我在 Microsoft word 的弹出框上遇到类似问题时找到了这个答案。

我使用的修复方法是重新启动计算机并以安全模式 (https://support.apple.com/en-us/HT201262) 打开电源,打开 Xcode(您可能需要安装组件),然后再次尝试存档。这一次,当您单击始终允许时,它应该可以工作。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 2011-06-20
    • 2020-06-20
    • 1970-01-01
    • 2015-07-24
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多