Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Xcode在密钥链中找不到此配置文件的有效私有证书/有效密钥对_Iphone_Objective C_Cocoa Touch_Xcode_Provisioning - Fatal编程技术网

Iphone Xcode在密钥链中找不到此配置文件的有效私有证书/有效密钥对

Iphone Xcode在密钥链中找不到此配置文件的有效私有证书/有效密钥对,iphone,objective-c,cocoa-touch,xcode,provisioning,Iphone,Objective C,Cocoa Touch,Xcode,Provisioning,可能重复: 我在安装另一个开发人员创建的配置文件时遇到问题 开发证书已存在 我正在使用的应用程序具有与证书关联的设置配置文件 已添加我的设备UUID 应用程序的AppID已存在 存在具有我的UUID的开发资源调配配置文件 下载证书和设置配置文件时,我在Organizer中发现错误: Xcode could not find a valid private certificate/valid key-pair for this profile in your keychain 如何解析?您还需

可能重复:

我在安装另一个开发人员创建的配置文件时遇到问题

  • 开发证书已存在
  • 我正在使用的应用程序具有与证书关联的设置配置文件
  • 已添加我的设备UUID
  • 应用程序的AppID已存在
  • 存在具有我的UUID的开发资源调配配置文件
  • 下载证书和设置配置文件时,我在Organizer中发现错误:

    Xcode could not find a valid private certificate/valid key-pair for this profile in your keychain
    

    如何解析?

    您还需要请求证书时使用的私钥

    私钥用于对使用开发人员身份编译的每个设备二进制文件进行签名。下载和导入的证书基本上只是私钥上的一个戳记,上面写着“使用此密钥签名的代码允许在设备上运行”

    让其他开发人员导出生成原始证书签名请求时使用的密钥,然后在您的计算机上导入它们

    一旦您同时拥有以下两项,请查看密钥链中的密钥是否与证书正确配对:

    当一切都正确就位时,您应该在证书上看到一个小的披露三角形,它允许您看到密钥(反之亦然,在密钥页面上,您应该在密钥下看到证书)。否则,关系不正确,在导入期间Keychain无法识别(在某些情况下,当过期证书仍在Keychain中时导入续订证书时,我会看到这种情况)

    我最近试图将iOS开发者证书的公钥/私钥对移动到另一台机器上。使用对.pem的密钥链访问将公共文件导出,并将私有文件导出到受密码保护的.p12

    在另一台机器上,钥匙链访问将不会导入它们。解决方案是一个很好的旧命令行:

    security import ios_priv.p12 -k ~/Library/Keychains/login.keychain 
    security import ios_pub.pem -k ~/Library/Keychains/login.keychain
    
    scp user@oldmac:Library/Keychains/login.keychain ~/Downloads/oldmac.keychain
    --or-- ssh oldmac; cp Library/Keychains/login.keychain ~/Dropbox/oldmac.keychain
    
    因此,如果您在传输证书的密钥时遇到问题,请尝试此方法


    编辑以回复@baudot下面的评论。(该评论不适合)

    确保您的密钥链中还有Apple Developer Relations根CA证书。这就是用于验证证书的内容

    你也可以选择重新开始。只需从密钥链中删除密钥和证书,在ADC门户上撤销它们,并删除它们关联的配置文件

    一旦删除了所有内容,就可以生成新的密钥对和相关的证书签名请求。然后确保出口钥匙并将其存放在一个好地方,以备将来使用

    然后您进入ADC门户,上传新的证书签名请求,生成新的配置文件,就可以开始了

    唯一不可替代的是你的ADC账户。其余的都可以恢复或重新创建


    我还建议您使用Xcode中内置的新奇的自动资源调配。这就省去了下载和导入配置文件的麻烦。它只是将您现有的配置文件与ADC同步。

    这发生在我身上,因为我将配置文件放到了Xcode Organizer中设备的“配置文件”部分,而不是库的“配置文件”部分。一旦我把它也扔到那里,警告就消失在设备部分


    希望这可以帮助任何人…

    您必须在iOS资源调配门户中编辑您的资源调配配置文件。选择“编辑”按钮,然后选择“修改”。输入所需信息(您的姓名、设备、应用程序id)

    当系统显示配置文件处于“活动”状态时,请转到iOS配置门户的“证书”部分,检查您的开发证书。它应该在“配置文件”条目中列出您的配置文件


    然后,您可以下载配置文件并将其放到Xcode中。

    当证书正常时,重新启动Xcode以帮助它找到它。

    我的证书过期后出现了这个问题,并且确定密钥都是正确的,并且在正确的位置。我缺少的步骤是删除配置门户中的配置文件并重新创建它们。不要相信那个“更新”链接——它看起来像是一条诱人的捷径,但它对我来说根本不起作用


    因此,对于一个新的开始,您不仅需要从密钥链中删除密钥和证书,还需要擦除“设置”下“开发和分发”选项卡的内容。

    我在10.6,Xcode 4.2上也遇到了这个问题。在尝试了许多其他事情之后,我最终退出了Xcode并重新启动了它。然后错误信息消失了。明白了。

    我也有类似的问题。一种解决方案是从密钥链中删除证书并请求新的证书。苹果在这里有一个非常详细的演练:


    我只能通过使用Xcode->Organizer->Developer Profile并在右窗格底部单击Export来解决这个问题。这将保存一个合并的
    .developerprofile
    文件,您只需在目标机器上打开/导入该文件


    免责声明:这可能不是海报最初的意图。但是,我无法以任何其他方式成功地在我的计算机之间移动private+public+cert。

    如果您的旧mac无法访问,但您具有ssh访问权限(就像在很远很远的办公室多维数据集中通电),则有一个解决方案。您只需使用命令行将钥匙链从旧机器复制到新机器:

    security import ios_priv.p12 -k ~/Library/Keychains/login.keychain 
    security import ios_pub.pem -k ~/Library/Keychains/login.keychain
    
    scp user@oldmac:Library/Keychains/login.keychain ~/Downloads/oldmac.keychain
    --or-- ssh oldmac; cp Library/Keychains/login.keychain ~/Dropbox/oldmac.keychain
    
    在新Mac上,打开钥匙链访问。转到文件->添加密钥链并选择下载/oldmac.Keychain


    然后,只需将必要的公钥从oldmac密钥链复制到默认的“登录”密钥链。

    刚刚出现了这个问题


    只需点击底部工具栏上的“刷新”,XCode 4就会为您下载并安装所有内容

    您已经安装了证书