我得到这个错误,而我试图调试我的应用程序上的设备。
我创建了开发配置文件,正如开发人员门户中提到的那样。在概要文件中选择了我的开发设备,我正在从Target的代码签名标识菜单中选择正确的概要文件。我重新创建配置文件几次,也删除和重新安装它,并重新创建项目,但每当我尝试在设备上调试时,我都会得到它。
顺便说一句,临时分发条款概要文件可以工作。
我花了一整天的时间想找出解决办法,但一无所获。有人有办法吗?
我得到这个错误,而我试图调试我的应用程序上的设备。
我创建了开发配置文件,正如开发人员门户中提到的那样。在概要文件中选择了我的开发设备,我正在从Target的代码签名标识菜单中选择正确的概要文件。我重新创建配置文件几次,也删除和重新安装它,并重新创建项目,但每当我尝试在设备上调试时,我都会得到它。
顺便说一句,临时分发条款概要文件可以工作。
我花了一整天的时间想找出解决办法,但一无所获。有人有办法吗?
当前回答
解决方案之一可能是,您的配置配置文件不包括您的iPhone的UDID。为此,您需要先注册UDID,然后从开发人员帐户重新生成配置文件。
其他回答
这是我的错误,我忘记在配置文件中添加我的设备。 当我添加了我的设备在开发和adhoc条款,并再次下载,然后重新启动Xcode,然后再次选择所需的条款在项目的目标,它工作顺利。
在我的例子中,这是因为在密钥链中有几个版本的开发人员证书。
从My Certificates和Certificates中删除iPhone开发者证书,然后从开发中心下载最新的证书并安装(双击。cer文件)
解决了我的问题
假设您已经正确安装了开发和发布证书:
在项目下,您的主要代码签名标识应该是该应用程序的开发人员配置文件。
在目标下,你的主要代码签名身份应该是该应用的分发配置文件,除非你应该将Debug > Any iOS SDK更改为你的开发配置文件…确保发布>任何iOS SDK是你的发行配置文件。这应该在您的预置手机上构建和运行,并且应该存档,没有任何协同设计警告。
当我的手机死机,我必须从之前的iTunes图像中恢复它时,唯一对我有用的东西。
我发现了这个问题,因为我已经获得了一台新的Mac,并且仍然在使用我的旧计算机证书。我为新Mac电脑创建了一个新证书,但两个证书都在我的钥匙链里。
在Organizer中,配置文件警告“XCode无法在您的keychain中为该配置文件找到有效的私钥/证书对”,即使旧证书存在于我的keychain中。
解决方案是从我的Keychain中删除旧证书,并删除/撤销使用此旧证书的所有配置文件。然后用新的证书创建一个新的配置文件并使用它。
希望这能有所帮助!
另一个原因(已核实):
Apple has a major bug in Xcode going back to version 3.x, where it magically overwrites the OS X keychain with a fake keychain from inside Xcode, re-installing certs (and private keys!) that you already deleted ...so, if you have "new cert" installed, and nothing else, Xcode will sometimes get into an infinite loop where it will keep ALSO installing "old cert" (that doesn't exist anywhere except inside XCode!). ...and because of ANOTHER bug in Xcode (unfixed for 3+ years now...), Xcode sometimes automatically selects the "oldest cert I can find" (whcih, by definition, is incorrect - I think someone at Apple got mixed up between "oldest" and "newest" :( ) ...and EVEN THOUGH you've selected the correct provisioning profile, Xcode sends the "old" provisioning profile to the device, then signs with the "new" profile, causing this error
解决方案:你必须unfubar Xcode的FUBAR你的钥匙链。
这比听起来要难(关于这个话题有很多SO帖子)-它涉及到多次重启你的机器,每次都删除密钥。
最终,Xcode放弃破坏你的操作系统,并接受你呈现给它的现实:)。