Mac OS X 希望在编译项目时使用系统密钥链

当我编译我的 Xcode 项目时,我被要求输入系统管理员用户名和密码。整个信息就是

Mac OS X 想要做出改变。键入管理员的名称和密码以允许执行此操作。Mac OS X 希望使用系统密钥链。

有人能解决这个问题吗?

92236 次浏览

是-仅使用管理员权限运行 XCode。它需要管理员权限来执行一系列任务、安装、调试会话等等。

你确定上面写的是“ MacOSX”而不是与开发工具相关的东西吗?

如果 Developer Tools 希望在 Mac 上启用 Developer Mode,这是很正常的,因此,在每次 Xcode 启动后,每次在模拟器中开始调试应用程序时,都不需要输入管理员密码。

但是如果您没有启用 Developer Mode,当 Xcode 提供这个功能时,那么请做好准备,每次 Xcode 启动后,您在模拟器中第一次启动调试时,Xcode 都会询问管理员密码。

我发现配置文件存在这个问题。我删除了所有以前的配置文件,然后重新安装了一个我需要的。

在我的例子中,我访问了 Keychain Access,在“ Keychain”中选择了“ system”(左上)。 然后对每个项目: 右键单击“获取信息”,“访问控制”,并在“始终允许这些应用程序访问:”列表中添加 Xcode。

我采用了一个类似于@kraafter 的解决方案,但是我没有提供访问系统密钥链中所有内容的权限,我只需要在密钥链-> system-> “ your provision profile”-> get info-> Access Control 下添加 xcode 到供应配置文件中,然后就可以添加 xcode 了。这就是4.6版本的效果

我之所以遇到这个问题,是因为在我的登录和系统密钥链中有重复的证书。通过打开 Keychain Access 并从系统中删除同时在登录中的所有证书,解决了这个问题。希望这个能帮上忙。

问题是钥匙链上的开发人员证书在左边面板的“系统”下面,它总是被锁定,需要我的密码才能解锁!

所以只需要将开发者证书移动到“登录”,它总是解锁的。现在你的问题就解决了。

将您的私钥从 System 移动到 keychain 访问中的登录。然后将开发人员证书移动到登录中。这招对我很管用。

你需要将你的 OSx 用户名添加到 _developer组。

sudo dscl . append /Groups/_developer GroupMembership <username>
  1. 开放钥匙链访问。
  2. 在左上角,解锁钥匙链(如果它是锁定的)。
  3. 从左上角选择 System keychain。
  4. 找到您的发行证书并单击披露三角形。
  5. 在分发证书下双击“私钥”。
  6. 在弹出窗口中,转到访问控制选项卡。
  7. 选择“允许所有应用程序访问此项”。
  8. 保存更改。
  9. 关闭所有窗户。
  10. 运行应用程序。

It seems that Xcode not refresh the team selection so selecting it again from the general tab of the targets solved it.

  1. 开放钥匙链访问

  2. 单击左窗格中的“系统”

  3. Unlock the System keychain top left (if it is locked)

  4. 按类别对系统项进行排序,使键位于顶部

  5. 查找一直要求输入密码的私钥

  6. 双击它并选择访问控制

  7. 选择“允许所有应用程序访问此项”

  8. Save changes, lock the System keychain and quit the Keychain app

  9. 重新启动一直要求修改您的密钥链的应用程序

访问控制设置似乎不再为存储在系统密钥链中的私钥保存,因此尝试将 Xcode 添加到那里的白名单对我不起作用。

In order to retain Access Control changes, I had to copy the private key + certificate to the Login keychain. This kept Xcode from bothering me when code signing archives for distribution.

注意,如果证书的信任设置发生变化(例如,总是允许代码签名) ,Xcode 将停止分发; must将这些设置保留为系统默认值。

我希望有一个比这更好的解决方案,因为这感觉不对。但它现在起作用了。