12

以前有人问过这个问题,但是以前问题的答案并没有解决我的问题。

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

我通过 Windows 机器上的 iTunes 同步我的 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 中,我的 Bundle Identifier 是“com.JohnSmith.CalculatorBrain”。捆绑显示名称为“${PRODUCT_NAME}”,可执行文件为“${EXECUTABLE_NAME}”(如果重要)。

在导航器中,如果我突出显示我的项目,并调出构建设置,在代码签名身份下,我会得到选项...

不要签署代码

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

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

其他...

我已经尝试了所有这些。我假设我应该使用 iPhone 开发人员:John Smith one……但它说这是一个没有配置文件的身份。

这里发生了什么?我需要做什么才能使其正常工作?

4

4 回答 4

39

根据您的描述,听起来缺少的元素是您需要返回“证书、标识符和配置文件”工具,为您的 HelloWorld 应用程序的 AppID 生成一个开发配置文件,然后在您的开发中安装该配置文件机器。概括地说,这由以下步骤组成:

  1. 在 Xcode 中找到您的项目的 AppID。
  2. 验证您是否已在“证书、标识符和配置文件”中设置了该 AppID。
  3. 为该 AppId、您的开发证书和一个或多个注册的测试设备创建一个开发供应配置文件。
  4. 在 Xcode 中下载并安装 Provisioning Profile。
  5. 使用此配置文件和链接代码签名身份将您的项目配置为代码签名。
  6. 构建到设备!

您提到的“代码签名身份”构建配置项在很大程度上取决于您的项目设置以及开发机器上可用的配置文件。我最近回答了一个相关的问题“什么是代码签名身份?” 这可能有助于查看代码签名正在使用的信息以及如何检查您的开发机器设置是否能够对您的项目进行代码签名。

...现在,关于更具体的 HOWTO 来帮助解决您的代码签名问题:

定位项目的AppID

AppID 唯一地定义了 iOS 生态系统中的应用程序,并且是您在开始一个新的 Xcode 项目时首先创建的东西之一。您需要在“证书、标识符和配置文件”工具中注册此 AppID 以开始配置。

Xcode AppId 设置

  1. 在 Project Navigator (CMD+1) 中,单击您的项目名称(可能是“CalculatorBrain”)。这将显示项目的设置。
  2. 选择 [您的项目名称] > 摘要选项卡,如上面的屏幕剪辑所示 (MyiOSApplication)。
  3. 您的 iOS AppID 显示在“Bundle Identifier”字段中。获取此字符串的副本,接下来您将需要它。

验证(或设置)AppID

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

请注意,AppID 在整个 iOS 生态系统中必须是唯一的——如果您选择的 AppID 已在使用中,您可能会收到错误消息。如果是这样,请将您的 'Bundle ID' 更改为唯一的 - 只需确保更新 Xcode 项目中的 'Bundle ID' 设置以匹配您选择的任何内容。

创建开发供应配置文件

现在已注册 App ID,您现在可以创建将您的 App ID、开发证书和测试设备 ID 链接在一起的开发供应配置文件。

  1. 在“证书、身份、配置文件”工具中,导航到“供应配置文件”。
  2. 单击右上角的“添加”(加号)按钮。
  3. 在“选择类型”步骤中选择“iOS App Development”,然后单击“继续”。
  4. 从 App ID 下拉列表中选择您的 App ID,然后单击“继续”。
  5. 选中您的开发证书旁边的框,然后单击“继续”。
  6. 选中您要授权安装此应用的测试设备旁边的框,然后单击“继续”。
  7. 键入配置文件名称(再次省略特殊字符),然后单击“生成”。

下载并安装配置文件

生成配置文件后,该工具将为您提供一个链接以供您下载

  1. 单击“下载”链接下载配置文件。
  2. 将 Provisioning Profile 从您的下载位置拖放到 Xcode Dock 图标上或双击打开它。

配置代码签名身份

听起来您已经知道它的位置,但以防万一:

  1. 在 Project Navigator (CMD+1) 中,单击您的项目名称(可能是“CalculatorBrain”)。这将显示项目的设置。
  2. 选择 [您的项目名称] > 构建设置选项卡。
  3. 滚动到“代码签名身份”项。

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

此外,我自己的 Xcode 似乎并不总是能赶上对新安装的配置文件的更改——目前尚不清楚这是否只是我自己的 Xcode 安装的一个怪癖,或者 Xcode 中是否存在错误。无论哪种方式,退出并重新启动 Xcode 似乎都会触发配置文件的重新索引/刷新。

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

假设问题是缺少/不完整/过期的配置文件,那么这应该可以帮助您启动和运行。如果没有,我们将不得不深入研究可能会妨碍您的代码签名操作的其他潜在设置或证书问题。

于 2013-04-23T00:13:22.163 回答
6

我遇到了非常相似的问题,尝试了这些代码签名的所有选项,而我的实际解决方案是:-重新启动 Xcode-转到“Window->Organizer”-然后“编辑器”和-“从开发人员门户刷新”然后我只需在“运行”和“停止”按钮旁边将“设置活动方案”设置为“iPhone (Petri)”。

于 2013-06-26T15:09:32.403 回答
1

请确保选中目标而不是项目。

确保选择了目标

于 2014-06-17T07:58:49.130 回答
1

在此处输入图像描述在我的情况下,设备有 3 个同名的配置文件。在开发过程中,我多次更新配置文件,每次将新的更新配置文件添加到设备时,都不会删除旧配置文件。因此,xcode 搜索了当时错误的第一个配置文件,并在我的脸上抛出了错误。那你该怎么办:

  1. 打开“设备”窗口(Cmd + Shif + 2)
  2. 搜索您的设备并选择它
  3. 在左下角按下“设置”按钮
  4. 按“配置文件”
  5. 搜索重复项。我找到了 3 项同名的配置文件
  6. 删除了除最新的以外的所有内容
于 2015-01-18T14:19:00.020 回答