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


92

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

Mac OS X希望进行更改。输入管理员的名称和密码以允许此操作。Mac OS X希望使用系统钥匙串。

有人对此有解决方案吗?

Answers:


242
  1. 打开钥匙串访问。
  2. 在左上角,解锁钥匙串(如果已锁定)。
  3. 从左上角选择系统钥匙串。
  4. 找到您的发行证书,然后单击披露三角形。
  5. 双击分发证书下的“私钥”。
  6. 在弹出窗口中,转到“访问控制”选项卡。
  7. 选择“允许所有应用程序访问此项目”。
  8. 保存更改。
  9. 关闭所有窗口。
  10. 运行应用程序。

3
我找不到任何分发证书下拉列表。在哪里找到这个?
Ananth Srinivasan 2015年

4
@ AnanthSrinivasan,PVCS仅表示主窗口中列出的帐户列表。双击强制您输入管理员名称和密码的帐户。
crazyDiamond

这也是确保它在自动化构建服务器上运行而不会中断凭据的唯一好方法。
Ben Butzer

4
你应该得到一个大屁股饼干的答案。
Miiite

1
我发现,在El Capitan上,您需要双击与格式yourhostname.domain.identity相匹配的私钥,然后执行步骤6-8。
杰森D

22

问题出在左侧面板的“系统”下的钥匙串上的开发人员证书上,该证书始终处于锁定状态,需要我的密码才能解锁!

因此,只需将开发人员证书移至“登录”即可,该证书始终处于解锁状态。现在您的问题得到解决。


1
这对我有所帮助,除了我无法将钥匙串移至“登录”位置。但是,我认为从系统钥匙串中删除证书可以解决此问题。
goelakash17年

这仅适用于从Xcode GUI进行构建,当您从CLI进行构建时(例如在CI环境中),密钥和证书必须位于系统钥匙串中。
RAM237

大!为我工作。我的证书位于“系统”下,已将其移至“登录”。
拉尔

除此以外,对我没有任何帮助。请注意,我无法移动它,我必须将其删除,只需将证书手动拖动到“登录”即可
Lirik

7
  1. 开放式钥匙串访问

  2. 单击左侧窗格中的系统

  3. 解锁系统钥匙串左上方(如果已锁定)

  4. 按种类对系统项排序,以使键位于顶部

  5. 寻找不断询问密码的私钥

  6. 双击它,然后选择访问控制

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

  8. 保存更改,锁定系统钥匙串并退出钥匙串应用

  9. 重新启动要求您修改钥匙串的应用程序


最佳做法是,对于第7步,仅允许您尝试授予访问权限的特定应用程序。因为安全。
Mike Rapadas

1
这与几年前提供答案有何不同?
grg

1
当我回答它时,答案是2年了,答案对我没有用,所以我写下了使它起作用的步骤,因此5票赞成。不要来这里更新他的答案,然后问我为什么我的人与众不同。如果相同,我敢肯定每个人都会像你一样
投票。–

1
我无法在步骤8中保存更改。我输入了管理员密码(询问我两次),但是,当我重新打开密钥时,更改尚未保存!为什么会这样呢?
Danijel

5

我遇到这个问题是因为我的登录名和系统钥匙串中有重复的证书。通过打开“钥匙串访问”并从系统中删除所有也在登录状态的证书,可以解决此问题。希望这可以帮助。


这仅适用于从Xcode GUI进行构建,当您从CLI进行构建时(例如在CI环境中),密钥和证书必须位于系统钥匙串中。在一台Mac上,我有相同的情况:在登录名和系统钥匙串中重复,并且一切正常,但由于某种原因在另一台电脑上却不行……
RAM237 '17

3

我发现问题出在配置文件的配置上。我删除了所有以前的配置文件,然后重新安装了所需的文件。


2

以我为例,我去了“钥匙串访问”,在“钥匙串”中选择了“系统”(左上)。然后对于每个项目:右键单击“获取信息”,“访问控制”,并在“始终允许这些应用程序访问”列表中添加Xcode。


2

将您的私钥从System移至登录以进行钥匙串访问,然后将开发人员证书移至登录。


1

我采用了类似于@krafter的解决方案,但是,无需授予对系统钥匙串中所有内容的访问权限,我只需要在添加的xchain到钥匙串下的供应配置文件中->系统->“您的供应配置文件”->获取信息->访问控制,然后刚刚添加了xcode。这是4.6的工作原理


0

是的-仅以管理员权限运行XCode。它需要管理员权限才能执行大量任务,安装,调试会话等。


我如何更改xcode首选项,使其与admin previliges一起运行?
辛格

我的意思是从定义为管理员的用户运行它。
Stavash 2012年

0

您确定它说“ Mac OS X”与开发人员工具无关吗?

如果开发人员工具想要在Mac上启用开发人员模式,这是正常的,因此,每次启动Xcode后,您不需要在每次首次在模拟器中调试应用程序时都输入管理员密码。

但是,如果尚未启用开发人员模式(由Xcode提供),则请做好准备,每次在Xcode启动后,每次在模拟器中启动调试时,Xcode都会要求输入管理员密码。


是的,它说MAC OS X,当我编译模拟器的版本时,它不会显示此消息,并且当我在设备上运行任何项目时,它会显示此消息
Singh

我发现这个问题是供应配置文件。我删除了所有以前的provisionning配置文件,然后重新安装一个,我需要解决的问题
辛格

Ya同意@developersaremad。我有解决方案...谢谢
kb920 2012年

0

您需要将OSx用户名添加到_developer组中。为我工作。

sudo dscl . append /Groups/_developer GroupMembership <username>

0

Xcode似乎没有刷新团队选择,因此从目标的“常规”选项卡中再次选择它可以解决问题。


0

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

为了保留访问控制更改,我必须将私钥+证书复制到登录钥匙串中。这使Xcode在为分发进行代码签名存档时不会打扰我。

请注意,如果更改了证书的“信任”设置(例如,始终允许代码签名),则Xcode将停止分发。您必须将这些设置保留为系统默认值。

我希望有比这更好的解决方案,因为这感觉不对。但这暂时有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.