为iPhone设备构build应用程序时,应用程序无法validation错误
好吧,我刚刚得到了一个新的MacBook Pro,并且在另一台MacBook上开发我的iPhone应用程序,我想将我的开发迁移到我的新电脑上。
我已经到了可以构build应用程序并在模拟器上运行的阶段,没有任何问题,但是在iPhone上运行应用程序时,我总是收到“应用程序无法validation”的问题。 我已经安装了一个新的开发人员证书,并安装了configuration文件(全部生成新的),但是我为什么仍然会收到错误而不知所措。
任何人有任何想法,我要去哪里错了?
编辑
我已经重新创build证书和profisioningconfiguration文件等…构build成功,底部的状态一路“安装在设备上”,然后两个模式对话框显示相同的“应用程序无法validation“ 错误信息。
有什么输出可以给我一个精确的错误?
编辑
好的,我已经从组织者那里得到了相应的日志来显示问题。 它看起来像我没有设置Entitlements.plist,但在Xcode,我有。 (我添加了Entitlements.plist文件,然后取消选中get-task-allow,然后将Entitlements.plist添加到Code Signing Entitlements下的项目设置中)。 日志是:
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
任何人都可以阐明为什么这不能按预期工作?
编辑
构build工作,但我还没有接受答案,因为我不知道发生了什么事情。 任何人有任何想法正在发生什么?
我的问题实际上是我已经通过我的手机上的testing飞行安装了应用程序,删除了它的工作后的应用程序!
我通过从手机中删除已经安装的版本,然后重新安装版本得到解决。
从ADC的这个线程 :
get-task-allow在login到应用程序时允许其他进程(如debugging器)附加到您的应用程序。 分发configuration文件要求closures此值,而开发configuration文件要求打开此值(否则Xcode将永远无法启动并附加到您的应用程序)。
检查您的iPhone是否configuration正确。 您可以连接iPhone并从XCode(主菜单 – >窗口 – >pipe理器)启动pipe理器,然后检查PROVISIONING PROFILES信息。
之后,你需要匹配捆绑标识符 (项目 – > Info.plist)和你的应用程序ID。 您可能会阅读此应用程序ID和包标识符之间的 Apple Note 不匹配
当我的Bundle Identifier不正确时,我有类似的消息框(连续两个)。
您是否记得在项目窗口的左侧展开目标,然后右键单击您的应用程序名称> 获取信息 ,然后转到构build选项卡,然后在代码签名下的代码签名标识下 ,将任何iPhone OS设备的值更改为什么适用于你的情况? 同样在属性选项卡中,您应该设置标识符,使其与您select的标识符匹配。
不知道这是否有帮助,这是我发现在你的描述中缺less的步骤。
我知道你已经检查了一些,但是这个答案是完整的:
- 检查是否在目标级别为您要在设备上安装的每个生成设置命名新的设置configuration文件和证书。
- 代码签名授权也必须定义在目标级别,而不是项目。
- 仔细检查您的构build日志,寻找包含CodeSign的行。 validation它在那里,并使用您所期望的证书。
- 如果一切都失败了,请从目标中删除代码签名标识,清除所有目标,从项目中删除任何生成目录,退出并重新启动Xcode,replace代码签名标识,然后再次尝试编译。
除了validation代码签名之外,请务必进入“生成”菜单并运行“清除所有目标”。 Xcode不时被混淆。
“应用程序无法validation”,在您的设备中可能已经有一个应用程序安装了相同的捆绑标识符。
我得到了这个问题,因为我从应用程序商店的应用程序,我正在从Xcodetesting其更新版本。&与我的实时应用程序中具有相同的标识符。
所以简单的解决scheme只需删除应用程序和再次安装.. ….
一个重要的但容易忽视的项目:确保您的所有configuration密钥和证书都在login钥匙串上。 当我尝试创build一个新的“开发”钥匙串时,我遇到了这个问题,所有的configuration文件都变成了“无效”。
问题解决了(至less对我来说!)
在工作的机器上导出开发人员configuration文件,然后导入到具有问题的机器上。 通过首选项/帐户完成,齿轮图标在底部。
进入窗口>设备,看着安装的应用程序,我能够发现我的应用程序已经安装。 select应用程序,然后点击“ – ”将其从设备中删除。 尝试用该设备重build您的应用作为目标。
为我工作,即使从手机,我无法find应用程序的安装位置!