找不到与应用程序标识符匹配的有效配置文件。

12

这个问题以前被问过,但之前的答案没有解决我的问题。

我正在尝试从斯坦福iTunes U课程构建一个简单的Hello World应用程序(CalculatorBrain)。我可以在模拟器中运行它,但我想在我的iPhone 4S上运行它。

我通过Windows计算机上的iTunes将我的iPhone 4S同步。一直以来都是如此。我觉得我应该列出这个细节。

无论如何,回到我的Macbook(Mountain Lion)上。我正在运行最新的XCode 4.6.2(4H1003),我的iPhone也是最新的6.1.3,我想。

我去了苹果开发者页面上的Provisioning Portal。我添加了我的4S。我把它叫做JohnSmith,并给它分配了手机的UDID。

在XCode中,我打开Organizer,设备默认为高亮显示。我在我的iPhone上输入密码,然后将其插入到我的Macbook中。设备找到了我的iPhone。如果我点击“Provisioning Profiles”并尝试“将设备添加到Provisioning Portal”,我会收到“此团队已经存在号码的设备。”太好了。我知道它肯定被添加了。到目前为止一切都很顺利。

在我的Hello World应用程序CalculatorBrain-Info.plist中,我的Bundle Identifier是“com.JohnSmith.CalculatorBrain”。如果有影响,Bundle显示名称为“$ {PRODUCT_NAME}”,可执行文件为“$ {EXECUTABLE_NAME}”。

在Navigator中,如果我突出显示我的项目并打开Build Settings,在Code Signing Identity下我会得到以下选项...

不签名代码

自动配置文件选择器 - iPhone开发人员 - iPhone分销商

没有配置文件的标识 - iPhone开发人员:John Smith(R............K) - iPhone分销商:John Smith(Y.............5)

其他...

我试过了所有这些。我认为我应该使用iPhone Developer: John Smith...但它说这是一个没有配置文件的标识。

这里出了什么问题?我需要做什么才能让它工作?


下面的那个巨大答案在技术上完美无缺。但我最近卡在这里,只有通过用文本编辑器打开我的Xcode项目文件并删除几行代码才能解决问题。 - Warren P
4个回答

39
根据您的描述,似乎缺失的元素是您需要回到“证书、标识符和配置文件”工具,为 HelloWorld 应用程序的 AppID 生成开发者预配资料文件,然后在开发机器上安装该资料文件。总体而言,这由以下步骤组成:
  1. 在 Xcode 中找到项目的 AppID。
  2. 确认您已在“证书、标识符和配置文件”中设置了该 AppID。
  3. 为该 AppID、您的开发证书和一个或多个注册测试设备创建开发者预配资料文件。
  4. 在 Xcode 中下载并安装预配资料文件。
  5. 使用此资料文件和链接的代码签名身份验证配置您的项目进行代码签名。
  6. 构建到设备!
您提到的“代码签名身份”构建配置项非常依赖于项目设置以及开发机器上可用的预配配置文件。最近我回答了一个相关问题'什么是代码签名身份?',可能有助于了解代码签名使用的信息以及如何检查您是否已经设置好了开发机器以对项目进行代码签名。
现在,让我们来看一些更具体的操作步骤,以帮助您解决代码签名问题: 查找项目的AppID AppID 在 iOS 生态系统中唯一地定义了一个应用程序,并且是开始新的 Xcode 项目时首先创建的内容之一。这个 AppID 是您需要在“证书、标识和配置文件”工具中注册以开始预配的内容。

Xcode AppId Setting

请按照以下步骤进行操作:
  1. 在项目导航器中(CMD+1),点击您的项目名称(可能是“CalculatorBrain”)。这将呈现项目的设置。
  2. 选择[您的项目名称] > 概要选项卡,如上面的屏幕截图所示(MyiOSApplication)。
  3. iOS应用程序ID显示在“Bundle Identifier”字段中。复制此字符串,您将需要它下一步操作。

验证(或设置)AppID

  1. 转到http://developer.apple.com/ios并访问“证书,标识符和配置文件”工具。
  2. 登录后,选择“标识符”。
  3. 检查在上一节中找到的AppID是否在应用标识符列表中。如果是,则记录App ID名称并跳过下一节,否则...
  4. 单击右上角的“添加”(加号)按钮,为此App ID提供一个名称(可以是任何您想要的名称,只要不带有特殊字符即可)。
  5. 滚动到页面底部,在“明确应用程序ID”下的“Bundle ID”字段中粘贴上一节中的App ID副本。
  6. 单击“继续”。

请注意,AppID必须在iOS生态系统中是唯一的--如果您选择的AppID已经在使用中,则可能会出现错误。如果是这样,请将“Bundle ID”更改为唯一的内容--只需确保将Xcode项目中的“Bundle ID”设置更新为您所选的内容即可。

创建开发配置文件

现在您已经注册了App ID,就可以创建一个开发配置文件,将您的App ID、开发证书和测试设备ID链接起来。
  1. 在“证书、身份、配置文件”工具中,导航到“配置文件”。
  2. 点击右上角的“添加”(加号)按钮。
  3. 在“选择类型”步骤中选择“iOS应用程序开发”,然后点击“继续”。
  4. 从App ID的下拉列表中选择您的App ID,然后点击“继续”。
  5. 选中您的开发证书旁边的复选框,然后点击“继续”。
  6. 选中您要授权安装此应用程序的测试设备旁边的复选框,然后点击“继续”。
  7. 键入配置文件名称(再次省略特殊字符),然后点击“生成”。

下载和安装配置文件

生成配置文件后,工具会提供一个链接供您下载。

  1. 通过单击“下载”链接下载配置文件。
  2. 从下载位置拖动配置文件并将其放置在Xcode Dock图标上,或者双击打开它。

配置代码签名标识

听起来你已经知道这在哪里,但以防万一:

  1. 在项目导航器中(CMD+1),点击您的项目名称(可能是“CalculatorBrain”)。这将呈现项目的设置。
  2. 选择[您的项目名称] > 构建设置选项卡。
  3. 滚动到“代码签名标识”选项。

理论上,您希望使用“自动配置文件选择器”选项,它将尝试将您的AppID与已安装的配置文件匹配,但您也可以滚动列表并选择特定的Bundle ID / AppId映射到iOS证书。

另外,我的Xcode并不总是能够捕捉到新安装配置文件的更改 - 不清楚这是否只是我自己Xcode安装的怪癖还是Xcode中存在错误。无论哪种情况,退出并重新启动Xcode似乎会触发重新索引/刷新配置文件。

无论如何,选择与您的AppId / BundleId和开发人员证书相匹配的选项。

假设问题是缺少/不完整/过期的配置文件,那么这应该有助于让您开始运行。如果不是这个问题,我们将不得不深入研究其他可能会使您的代码签名操作出现问题的设置或证书问题。

非常感谢您提供这么详细的解释。我一步一步地按照您的指示操作,成功解决了所有问题! - George Pligoropoulos
我完全同意。再次感谢。 - Taylor
也解决了我的问题。不要依赖通配符应用程序ID。 - Sherif Buzz
双击配置文件在Xcode中安装,节省我半天时间。非常感谢! - Alston

6

我遇到了非常类似的问题,尝试了所有的代码签名选项,但实际解决方案是: - 重新启动Xcode - 进入“窗口->组织者” - 然后点击“编辑器” - 再点击“从开发者门户网站刷新” 然后我只需在运行和停止按钮旁边将“活动方案”设置为“iPhone(Petri)”即可。


非常感谢 - 这真的起作用了 - 虽然大约需要30秒,但完成后没有显示。因为我很不耐烦,第一次尝试时它没有起作用,然后突然间就起作用了。 - cardmagik

1

请确保勾选的是“Targets”而不是“projects”。

make sure Targets is selected


1
在我的情况下,设备有3个相同名称的配置文件。在开发过程中,我更新了几次配置文件,每次新的更新配置文件都会被添加到设备上,而不是删除旧的配置文件。所以xcode搜索到了错误的第一个配置文件,并将错误抛出在我的面前。
那么,你应该做什么:
  1. 打开“设备”窗口(Cmd + Shif + 2)
  2. 搜索并选择您的设备
  3. 在左下角按“设置”按钮
  4. 按“配置文件”
  5. 查找重复项。我找到了3个具有相同名称的配置文件项目
  6. 删除除最新配置文件之外的所有配置文件

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接