这事让我非常担心。我刚刚下载了iPhone 3.0 SDK,但现在我无法让我的配置文件工作。以下是我的尝试:
删除所有配置配置文件
删除登录keychain
创建新的“登录”钥匙链,使它
默认的
创建一个新的证书签名请求
创建新的开发人员和分销渠道
证书在苹果开发者中心
下载并安装它们
下载并安装WWDR证书
创建一个新的配置文件和
双击它来安装
所有的证书报告都是有效的,但是Xcode仍然不能识别它们。接下来我该试试什么?
编辑:
我完全重新安装了Mac OS X,从一个新的安装安装了3.0 SDK,仍然有同样的问题。
我也遇到了同样的问题:我第一次是在跑步时把证书下载到我的小MacBook上的。当我试图在iMac上安装证书时…然后我遇到了这一页上描述的问题。
和你们很多人一样,我花了几个小时把头发揪出来,然后我按照下面的步骤来解决它:
Close all your stuff except your webpage that should be logged into App Dev center.
Open Xcode. Click WINDOW > ORGANIZER. Then click the Devices tab and select "Provisioning Profiles" on the left.
That should bring up your provisioning profiles. Highlight one by one (if more than 1), right click and delete profile. Yes, just do it! Delete them all! (I kept making a new one after a new one trying to make the thing work.)
From the first page you see after logging into the App Dev Center on the right side click "iOS PROVISIONING PORTAL" > (do not "launch assistant"). Instead click on the left side. Select CERTIFICATES. You will probably have just one line listed with your name/company - from there click on the right side REVOKE. Click OK to verify that's what you want to do.
On the same page click DEVICES. Click the box next to your device you are trying to provision and click REMOVE SELECTED. Again click OK to verify.
Wait about 2 minutes to let Apple do their thing.
Now click on "HOME" that is on the left side navigation.
Click "Launch Assistant"
create a new app ID - call it whatever you want. Just make sure it's unique enough to know that's the one you just created because the others you've been messing with all day will not be deleted from Apples Dev Center.
You should be able to follow the rest of the Assistant without troubles -- the main thing is you just had to delete your old provision profiles and start over.
好运!
你需要:
1)私钥和公钥。
你的钥匙链上有这个符号
2)由这些密钥的签名请求生成的证书
3)连接到该证书的配置文件
假设你换了电脑,想重新设置Xcode配置文件。你是怎么做到的?
Open Xcode, press ctrl + O to open the Organizer, and delete all provisioning profiles you might have installed already.
Open keychain access, and create a signing request which you save to file (when you create the request, a private and public key is created in your keychain).
Create/Update a certificate in the provisioning portal by sending apple this signing request
Download and install the newly created certificate.
Revoke your provisioning profiles and update them with the new certificate.
Download and install the newly updated provisioning profiles.
对于开发证书,您只需创建一个新的证书并将其与配置文件匹配即可。但是对于分发,就像你要提交给苹果时,你不能这样做,必须使用团队代理创建的分发证书。问题是您需要计算机上的私钥。这很简单,但是,创建证书的团队代理复制私钥给你,下面是来自Apple的说明,我希望这对你有帮助。
It is critical that you save your private key somewhere safe in the event that you need to develop on multiple computers or decide to reinstall your system OS. Without your private key, you will be unable to sign binaries in Xcode and test your application on any Apple device. When a CSR is generated, the Keychain Access application creates a private key on your login keychain. This private key is tied to your user account and cannot be reproduced if lost due to an OS reinstall. If you plan to do development and testing on multiple systems, you will need to import your private key onto all of the systems you’ll be doing work on.
To export your private key and certificate for safe-keeping and for enabling development on multiple systems, open up the Keychain Access Application and select the ‘Keys’ category.
Control-Click on the private key associated with your iPhone Development Certificate and click ‘Export Items’ in the menu. The private key is identified by the iPhone Developer: public certificate that is paired with it.
Save your key in the Personal Information Exchange (.p12) file format.
You will be prompted to create a password which is used when you attempt to import this key on another computer.
You can now transfer this .p12 file between systems. Double-click on the .p12 to install it on a system. You will be prompted for the password you entered in Step 4.
以下是我所做的。
Make sure your certificates have not expired, make sure you delete all the expired ones. Get new ones etc, Once you have make sure all that is the way it should be, then focus on your project files.
in finder , go to your .xcodeproj files then show package contentes.
open project.pbxproj in xcode or textedit.
find every refrense to PROVISIONING_PROFILE and remove the GUID, just leave empty ""
Depending on your project you should have about 12+ refrences, remove all of the GUIDS.
Save file, then reopen your project in XCODE
Re select the correct provision profiles for all possible code signings( they should not all be the same)
Build your project and you should be good to go.
我认为Xcode在某种程度上混淆了,从项目中删除了所有的Provision Profiles。Pbxproj,然后重新选择一个有效的配置文件将使它直。
确保这种情况干净地发生的一个好方法是首先完全清理您的登录密钥链。
另外,一个非常重要的步骤是在导入私钥和公钥之前解锁您的钥匙链
security unlock-keychain -p password ~/Library/Keychains/login.keychain
将私钥导入登录keychain:
security import PrivateKey.p12 -k ~/Library/Keychains/login.keychain
导入1个身份。
将公钥导入登录keychain:
security import PublicKeyName.pem -k ~/Library/Keychains/login.keychain
1键导入。
昨天我们的CI服务器也遇到了类似的问题。无法对应用程序扩展名进行错误签名
Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier XXX were found.
注意:我自己从开发者门户网站创建了配置文件(不是由Xcode管理的)。
错误在于,我已经使用分发证书创建了供应配置文件,但是构建设置设置为使用开发人员证书。将其更改为使用分发证书解决了这个问题。
摘要:在生成设置中也要匹配用于创建配置文件的证书。
For Xcode 13 (maybe earlier?) - The key to this is to use the "Build Settings" tab, not the "Signing and Capabilities" tab in your Target Settings. Once you are in "Build Settings", search for the "Signing" section (you can type "Signing" in the search box). There you will see a sub-section called Code Signing Identity. In that section you can click on each line and directly choose any certificate you have in your keychain. You need to do that for all of the relevant configurations (the ones that you want to upload to TestFlight/AppStore). When you go back to the "Signing and Capabilities" tab, you should see the results of what you did and the error should have gone away.
我从下面的答案中得到了灵感:https://stackoverflow.com/a/37043501/826946
但我认为明确地列出这一点可能会有所帮助。