繁体   English   中英

为 iPhone 设备构建应用程序时无法验证应用程序错误

[英]Application could not be verified error when building app for iPhone device

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

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

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

编辑

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

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

编辑

好的,我从 Organizer 获得了显示问题的相应日志。 看起来我还没有设置 Entitlements.plist,但在 xcode 中,我有。 (我添加了一个 Entitlements.plist 文件,然后取消选中 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

任何人都可以解释为什么这不能按预期工作?

编辑

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

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

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

来自ADC的这个帖子

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

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

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

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

您是否记得在项目窗口左侧展开目标,然后右键单击您的应用程序名称> 获取信息 ,然后转到“ 构建”选项卡并在“代码签名 ”下的“代码签名标识”下 ,将“ 任何iPhone OS设备”的值更改为什么适用于您的情况? 同样在属性选项卡中,您应该设置标识符,使其与您选择的标识符相匹配。

不知道这是否有帮助,这是我在你的描述中找不到的步骤。

我知道你已经检查了一些,但只是这样的答案是完整的:

  • 检查要在设备上安装的每个构建设置的新配置文件和证书是否在目标级别命名。
  • 代码签名权利也必须在目标级别而不是项目中定义。
  • 仔细检查您的构建日志,查找包含CodeSign的行。 验证它是否存在并使用您期望的证书。
  • 如果所有其他方法都失败了,请从目标中删除代码签名标识,清除所有目标,从项目中删除任何构建目录,退出并重新启动Xcode,替换代码签名标识,然后再次尝试构建。

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

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

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

为我工作,即使从手机我找不到应用程序的安装位置!

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

我遇到了这个问题,因为我从App商店购买了应用程序,而我正在测试Xcode的更新版本。并使用与我的实时应用程序相同的标识符。

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

除了验证代码签名之外,请务必转到“生成”菜单并运行“清除所有目标”。 Xcode不时变得混乱。

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

为了我:

  • 越狱的 iPhone

最终解决方案:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM