找不到与应用程序标识符匹配的有效配置文件
Posted
技术标签:
【中文标题】找不到与应用程序标识符匹配的有效配置文件【英文标题】:A valid provisioning profile matching the application's identifier could not be found 【发布时间】:2013-04-15 20:33:54 【问题描述】:以前有人问过这个问题,但以前问题的答案并没有解决我的问题。
我正在尝试从斯坦福 iTunes U 课程中构建一个名为 (CalculatorBrain) 的简单 Hello World 应用程序。我可以在模拟器中很好地运行它,但我想在我的 iPhone 4S 上运行它。
我通过 iTunes 在我的 Windows 机器上同步我的 iPhone 4S。一直有。想我应该列出这个细节。
无论如何,回到我的 Macbook(Mountain Lion)。我正在运行最新的 XCode 4.6.2 (4H1003),我相信我的 iPhone 也是最新的 6.1.3。
我访问了 Apple 开发人员页面的 Provisioning Portal。我加了我的4S。我称它为 JohnSmith,并给它电话 UDID。
在 XCode 中,我打开了 Organizer,Devices 默认高亮显示。我将密码放入我的 iPhone,然后将其插入我的 Macbook。设备找到我的 iPhone。如果我单击配置文件并尝试“将设备添加到配置门户”,我会收到“此团队中已存在带有编号的设备”。伟大的。我知道它肯定是添加的。到目前为止所有的好消息。
在我的 Hello World 应用程序 CalculatorBrain-Info.plist 中,我的包标识符是“com.JohnSmith.CalculatorBrain”。捆绑显示名称为“$PRODUCT_NAME”,可执行文件为“$EXECUTABLE_NAME”(如果重要)。
在导航器中,如果我突出显示我的项目并调出构建设置,在代码签名身份下我会看到选项...
不要签署代码
自动配置文件选择器 - iPhone 开发者 - iPhone 分发
没有配置文件的身份 - iPhone 开发者:John Smith (R............K) - iPhone 分发:John Smith (Y.............5)
其他...
我已经尝试了所有这些。我假设我应该使用 iPhone 开发人员:John Smith one...但它说这是一个没有配置文件的身份。
这里发生了什么?我需要做什么才能让它工作?
【问题讨论】:
下面这个巨大的答案在技术上是完美的。但我最近被困在这里,只有使用文本编辑器进入我的 xcode 项目文件并删除几行才能解开。 【参考方案1】:根据您的描述,听起来缺少的元素是您需要返回“证书、标识符和配置文件”工具,为您的 HelloWorld 应用的 AppID 生成开发配置配置文件,然后安装该配置文件在您的开发机器上。概括地说,这由以下步骤组成:
-
在 Xcode 中找到您项目的 AppID。
确认您已在“证书、标识符和配置文件”中设置了该 AppID。
为该 AppId、您的开发证书和一个或多个注册的测试设备创建一个开发配置文件。
在 Xcode 中下载并安装 Provisioning Profile。
使用此配置文件和链接代码签名身份将您的项目配置为代码签名。
构建到设备!
您提到的“代码签名身份”构建配置项在很大程度上取决于您的项目设置以及开发机器上可用的配置文件。我最近回答了一个相关的问题'What are code signing identities?',这可能有助于了解代码签名正在使用哪些信息以及如何检查您的开发机器设置是否能够对您的项目进行代码签名。
...现在,了解更具体的 HOWTO 以帮助解决您的代码签名问题:
定位项目的 AppID
AppID 唯一地定义了 ios 生态系统中的应用程序,并且是您在开始新的 Xcode 项目时首先创建的东西之一。您需要在“证书、标识符和配置文件”工具中注册此 AppID 才能开始配置。
-
在项目导航器 (CMD+1) 中,单击您的项目名称(可能是“CalculatorBrain”)。这将显示项目的设置。
选择 [您的项目名称] > 摘要选项卡,如上面的屏幕剪辑所示 (MyiOSApplication)。
您的 iOS AppID 显示在“Bundle Identifier”字段中。获取此字符串的副本,接下来您将需要它。
验证(或设置)AppID
-
导航至http://developer.apple.com/ios 并访问“证书、标识符和配置文件”工具。
登录后,选择“标识符”。
检查您在上一节中找到的 AppID 是否存在于 App Identifiers 列表中。如果是,请记下 App ID 名称并跳到下一部分,否则...
点击右上角的“添加”(加号)按钮,为该 App ID 提供一个名称(可以是任何您想要的名称,只要它没有特殊字符即可。)
滚动到页面底部,然后在“Bundle ID”字段中粘贴上一部分的 App ID 副本。在“显式应用 ID”下。
点击“继续”。
请注意,AppID 在整个 iOS 生态系统中必须是唯一的 - 如果您选择的 AppID 已在使用中,您可能会收到错误消息。如果是这样,请将您的 'Bundle ID' 更改为唯一的 - 只需确保更新 Xcode 项目中的 'Bundle ID' 设置以匹配您选择的任何内容。
创建开发配置文件
现在 App ID 已注册,您现在可以创建将您的 App ID、开发证书和测试设备 ID 链接在一起的开发配置文件。
-
在“证书、身份、配置文件”工具中,导航至“配置配置文件”。
点击右上角的“添加”(加号)按钮。
在“选择类型”步骤中选择“iOS 应用开发”,然后单击“继续”。
从应用 ID 下拉列表中选择您的应用 ID,然后点击“继续”。
选中您的开发证书旁边的框,然后点击“继续”。
选中您要授权安装此应用的测试设备旁边的框,然后点击“继续”。
输入配置文件名称(同样省略特殊字符),然后单击“生成”。
下载并安装配置文件
生成配置文件后,该工具将为您提供一个下载链接
-
点击“下载”链接下载配置文件。
将 Provisioning Profile 从您的下载位置拖放到 Xcode Dock 图标上或双击打开它。
配置代码签名身份
听起来您已经知道它的位置,但以防万一:
-
在项目导航器 (CMD+1) 中,单击您的项目名称(可能是“CalculatorBrain”)。这将显示项目的设置。
选择 [您的项目名称] > 构建设置选项卡。
滚动到“代码签名身份”项。
理论上,您希望使用“自动配置文件选择器”选项,该选项将尝试将您的 AppID 与已安装的配置文件匹配,但您也可以滚动列表并选择 Bundle ID/AppId 到 iOS 的特定映射证书。
此外,我自己的 Xcode 似乎并不总是能赶上对新安装的配置文件的更改——目前尚不清楚这是否只是我自己的 Xcode 安装的一个怪癖,或者 Xcode 中是否存在错误。无论哪种方式,退出并重新启动 Xcode 似乎都会触发配置文件的重新索引/刷新。
无论如何,请选择与您的 AppId/BundleId 和开发者证书匹配的选项。
假设问题是缺少/不完整/过期的配置文件,那么这应该可以帮助您启动和运行。如果没有,我们将不得不深入研究可能会妨碍您的代码签名操作的其他潜在设置或证书问题。
【讨论】:
非常感谢您的详尽解释。我一步一步地跟着它解决了我所有的问题! 我支持这种情绪。再次感谢。 也解决了我的问题。不要依赖通配符应用 ID。 "双击provisioning profile安装到Xcode"省了我半天。非常感谢!【参考方案2】:我遇到了非常相似的问题,尝试了这些代码签名的所有选项,而我的实际解决方案是: - 重新启动 Xcode - 转到“窗口->管理器” - 然后是“编辑器”和 - “从开发者门户刷新” 然后我只是在“运行”和“停止”按钮旁边将“设置活动方案”设置为“iPhone (Petri)”。
【讨论】:
非常感谢 - 这确实有效 - 虽然它花了大约 30 秒,但完成后没有显示。由于我不耐烦,第一次尝试,它没有成功,然后突然BAM!它奏效了。【参考方案3】:请确保选中的是目标而不是项目。
【讨论】:
【参考方案4】:在我的情况下,设备有 3 个同名的配置文件。在开发过程中,我多次更新配置文件,每次将新的更新配置文件添加到设备时,都不会删除旧配置文件。因此,xcode 搜索了当时错误的第一个配置文件,并在我的脸上抛出了错误。 那么,你应该怎么做:
-
打开“设备”窗口(Cmd + Shif + 2)
搜索您的设备并选择它
在左下角按下“设置”按钮
按“配置文件”
搜索重复项。我找到了 3 项同名的个人资料
删除了除最新的以外的所有内容
【讨论】:
以上是关于找不到与应用程序标识符匹配的有效配置文件的主要内容,如果未能解决你的问题,请参考以下文章
代码签名错误:找不到与应用程序标识符匹配的有效配置文件...