46

好的,我刚刚给自己买了一台闪亮的新 MacBook Pro,并且一直在另一台 MacBook 上开发我的 iPhone 应用程序,我想将我的开发迁移到我的新计算机上。

我已经到了可以构建应用程序并在模拟器上运行它没问题的阶段,但是在我的 iPhone 上运行应用程序时,我不断收到“无法验证应用程序”。我已经安装了一个新的开发人员证书,并安装了配置文件(所有生成的都是新的),但我不知道为什么我仍然应该收到错误。

有人对我要去哪里有任何想法吗?

编辑

我已经重新创建了证书和配置文件等...构建成功,底部的状态一直到“正在设备上安装”,然后显示两个模式对话框,显示相同的“无法验证应用程序“ 错误信息。

有没有我能得到的输出会给我一个精确的错误?

编辑

好的,我从 Organizer 那里得到了显示问题的相应日志。看起来我还没有设置 Entitlements.plist,但在 xcode 中,我有。(我添加了一个 Entitlements.plist fole,然后取消选中 get-task-allow,然后将 Entitlements.plist 添加到代码签名权利下的项目设置中)。日志是:

Tue Jun 16 07:35:42 unknown mobile_installation_proxy[1162] <Error>: install_embedded_profile: Skipping the installation of the embedded profile
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: entitlement 'get-task-allow' has value not permitted by a provisioning profile
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: verify_executable: Could not validate signature: e8008016
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: preflight_application_install: Could not verify /var/tmp/install_staging.1WIVsB/BouldrData.app/BouldrData
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: install_application: Could not preflight application install
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: handle_install: Installation failed
Tue Jun 16 07:51:53 unknown afcd[1181] <Error>: user mobile has uid 501
Tue Jun 16 07:51:53 unknown afcd[1181] <Error>: mode is 0x41e8

谁能解释为什么这不能按预期工作?

编辑

构建工作,但我还没有接受答案,因为我不知道发生了什么。任何人都知道发生了什么?

4

12 回答 12

93

我的问题实际上是我已经通过手机上的 testflight 安装了该应用程序,删除该应用程序后它可以工作了!

于 2015-02-02T11:44:17.177 回答
32

我通过从手机中删除已安装的构建然后重新安装构建来解决它。

于 2015-02-26T20:51:27.217 回答
16

ADC 上的这个线程

get-task-allow,当登录到应用程序时,允许其他进程(如调试器)附加到您的应用程序。分发配置文件要求关闭此值,而开发配置文件要求打开此值(否则 Xcode 将永远无法启动并附加到您的应用程序)。

于 2009-06-22T08:47:36.180 回答
6

检查您的 iPhone 是否正确配置。您可以连接 iPhone 并从 XCode 启动Organizer(主菜单 -> 窗口 -> Organizer),然后检查PROVISIONING PROFILES信息。

之后,您需要匹配Bundle Identifier (Project -> Info.plist) 和您的 App ID。您可以阅读此 Apple Note Mismatch between App ID and Bundle Identifier

当我的 Bundle Identifier 不正确时,我有类似的消息框(连续两个)。

于 2009-06-15T21:55:46.320 回答
3

您是否记得展开项目窗口左侧的 Targets,然后右键单击您的应用名称 > get info,然后转到Build选项卡并在Code Signing下,在Code Signing Identity下,将Any iPhone OS Device的值更改为什么适用于您的情况?同样在属性选项卡中,您应该设置您的标识符,以便它与您选择的标识符相匹配。

不知道这是否有帮助,但这是我发现您的描述中缺少的步骤。

于 2009-06-15T19:41:37.873 回答
2

我知道您已经检查了其中的一些内容,但是这个答案是完整的:

  • 检查新的配置文件和证书是否在您要安装在设备上的每个构建设置的目标级别命名。
  • 代码签名权利也必须在目标级别定义,而不是在项目级别。
  • 仔细检查您的构建日志,寻找包含 CodeSign 的行。验证它在那里并使用您期望的证书。
  • 如果一切都失败了,从你的目标中删除代码签名身份,清理所有目标,从你的项目中删除任何构建目录,退出并重新启动 Xcode,替换代码签名身份,然后再次尝试你的构建。
于 2009-06-16T15:00:51.463 回答
1

除了验证代码签名之外,请务必转到 Build 菜单并运行“Clean all targets”。Xcode 时常会混淆。

于 2009-06-15T21:00:54.377 回答
1

问题解决了(至少对我来说!)

在正常工作的机器上导出开发人员配置文件,然后在有问题的机器上导入。通过首选项/帐户,底部的齿轮图标完成。

于 2015-04-09T21:08:40.430 回答
1

进入 Window > Devices 并查看已安装的应用程序,我发现我的应用程序已经安装。选择应用程序并点击“-”将其从设备中删除。尝试以该设备为目标重新构建您的应用程序。

为我工作,即使通过电话我找不到应用程序的安装位置!

于 2015-08-17T15:23:42.263 回答
1

“无法验证应用程序”,在您的设备中可能已经安装了具有相同捆绑标识符的应用程序。

我遇到了这个问题,因为我有来自 App Store 的应用程序&我正在从 Xcode 测试它的更新版本。& 使用与我的实时应用程序相同的标识符。

如此简单的解决方案只需删除应用程序并再次安装......

于 2016-06-28T21:39:50.523 回答
0

一项重要但容易忽视的项目:确保您的所有配置密钥和证书都在登录钥匙串上。当我尝试创建一个新的“开发”钥匙串并且我的所有配置文件都变得“无效”时,我遇到了这个问题。

于 2010-12-12T17:09:52.873 回答
0

为了我:

  • 越狱的 iPhone

最终解决方案:

于 2021-10-29T02:34:26.067 回答