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

Posted

技术标签:

【中文标题】为 iPhone 设备构建应用程序时无法验证应用程序错误【英文标题】:Application could not be verified error when building app for iPhone device 【发布时间】:2010-11-03 03:06:56 【问题描述】:

好的,我刚刚给自己买了一台闪亮的新 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

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

编辑

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

我的情况类似;我已经通过 App Store 安装了该应用程序,并试图用开发版本覆盖它,但它不起作用。从我的设备上删除原始文件允许 Xcode 安装调试版本! 也为我工作。有趣的是,我今天在 android 上遇到了完全相同的情况,消息类似于“必须先卸载应用程序才能在此设备上安装它”。 @JackBeNimble 我敢打赌 27,000 人不必用谷歌搜索该消息的含义。【参考方案2】:

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

【讨论】:

这也是我的问题 这是为我做的 :)【参考方案3】:

来自this thread on ADC:

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

【讨论】:

+1 我在谷歌上花了一个多小时寻找这个答案。太棒了! 我只是跳过了权利文件,它适用于内部分发。【参考方案4】:

检查您的 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 不正确时,我有类似的消息框(连续两个)。

【讨论】:

当我覆盖了一个使用 TestFlight 下载的应用程序时,我收到了这个错误。这可能是因为我使用的开发配置文件的团队与分发配置文件的团队不同。【参考方案5】:

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

不知道这是否有帮助,不过我发现你的描述中缺少这一步。

【讨论】:

是的——看起来也不错 从旧 MacBook 上使用的值来看,它可能看起来不错。您是否在所有目标中更改了它们以使用您在新 MacBook Pro 上安装的新证书和配置文件? 是的 - 我在新的 macbook 上检查过【参考方案6】:

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

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

【讨论】:

【参考方案7】:

除了验证代码签名之外,请务必转到构建菜单并运行“清理所有目标”。 Xcode 时不时会搞混。

【讨论】:

【参考方案8】:

问题已解决(至少对我而言!)

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

【讨论】:

【参考方案9】:

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

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

【讨论】:

【参考方案10】:

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

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

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

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

对我来说:

越狱的 iPhone

最终解决方案:

通过Cydia 安装调整AppSync Unified

【讨论】:

以上是关于为 iPhone 设备构建应用程序时无法验证应用程序错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在 iphone 上构建应用程序“没有提供兼容 iOS 版本的预置 iOS 设备。”

以真实设备为目标时,无法在 IOS 中构建 react-native

无法为模拟器构建应用程序。在 iPhone 12 上启动应用程序时出错

“无法为模拟器构建应用程序。” “在 iPhone 11 上启动应用程序时出错。”

verify_signer_identity:无法复制验证签名:

在测试设备未通过基于 SMS 的用户身份验证后,iOS 应用程序被 Apple 拒绝 [关闭]