XCode无法将iPhone应用部署到iPhone 3GS

5
所以我�建了我的iPhone应用程�,并且在模拟器中�行良好,所以我想在进入开放测试之�,使用分��置文件将其部署到我的iPhone进行最�一轮测试。我已�这样�了很多次,��没有问题。然而,自上次测试以�,我�级了我的iPhone(iOS 4)和XCode(版本4 DP2),因此问题�能是根�。
�建过程正常进行并�功完�-此�,XCode�试将其部署到我的iPhone并因简�的“�生未知错误�而失败。我对此感到困惑,所以查看了系统日志,以下是它的内容:
Jul 29 17:44:18 Xcode[12893]: AMDeviceStartHouseArrestService (thread 0x120e8e000): There was an error from the device: ApplicationLookupFailed Jul 29 17:44:19 Xcode[12893]: call_and_response (thread 0x120e8e000): GOT AN ERROR 0xe800003a Jul 29 17:44:19 Xcode[12893]: perform_command (thread 0x120e8e000): There was an error communicating with the service agent: 0xe8008001 Jul 29 17:44:19 Xcode[12893]: AMDeviceSecureInstallApplication (thread 0x120e8e000): Could not install package on device: e8008001 Jul 29 17:44:19 Xcode[12893]: Result for ‘/SourceCache/DTDeviceKit/DTDeviceKit-232.24/DTDeviceKit/DTDeviceKit_Utilities.m’ at 468 : 0xE8008001 Jul 29 17:44:19 Xcode[12893]: Result for ‘/SourceCache/IDEiPhoneSupport/IDEiPhoneSupport-45/Classes/DVTiPhoneMobileDeviceIO.m’ at 265 : 0xE8008001
我猜这是一个相当�常�的问题(因此是“未知错误�),所以我�常感谢任何解决该问题的指针。我�期望得到解决方案或任何东西(尽管如�有人�到过类似的问题并帮助我�供确切的解决方案,我会�常感激😉),但也许你们有好主�。
根�日志中列出的两行,指出设备出�了错误,并且在��务代�进行通信时出�了问题,我猜测�能是�iPhone本身的��有问题 - 但是看到�iTunes�步和所有“正常�的东西都很好,我无法弄清楚问题�能是什么。
��感谢您对我的帮助。
更新:
所以,在查找�,我在XCode Organizer中的设备�制�上找到了这个:

看起来iPhone无法验证代码签名的签名。我猜明天我会重新创建一些证书并再次尝试。我会告诉你结果如何。

Thu Jul 29 22:40:00 Roberts-3GS SCHelper[38] : 0x104e60 {port = 0x382b, caller = SpringBoard(42):com.apple.preferences, path = /Library/Preferences/SystemConfiguration/preferences.plist}

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 未被识别的状态-25293来自codesigning库

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 00503000 verify_signer_identity: 无法复制验证签名:-402620415

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 00503000 preflight_application_install: 无法验证/var/tmp/install_staging.0DuNfz/landu.app中的可执行文件

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 00503000 install_application: 无法预检应用程序安装

Thu Jul 29 22:40:22 Roberts-3GS mobile_installation_proxy[961] : 处理安装:安装失败

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 00503000 handle_install: API失败

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 00503000 send_message: 发送64字节的mach消息失败:10000003

Thu Jul 29 22:40:22 Roberts-3GS installd[960] : 00503000 send_error: 无法向客户端发送错误响应


只是想让所有遇到同样问题的人知道最终解决方法:我刚刚通过开发者网站重新创建了我的开发者证书和配置文件,并重新安装了两者。在进行了一次干净的构建周期后,一切都按预期工作(在XCode4中),现在一切都很好。所以,如果您遇到这种问题,请查看设备控制台,如果它看起来像我的那样,那就是解决问题的方法。 - the_rob
2个回答

2

首先,看这里:http://9mmedia.com/blog/?p=229

然后:

您尝试重新创建配置文件并重新安装它,然后与iTunes同步了吗?此外,请确保在Entitlements.plist中选中get-task-allow

从另一篇文章中:

当登录应用程序时,get-task-allow允许其他进程(如调试器)附加到您的应用程序。发布配置文件要求关闭此值,而开发配置文件要求打开此值(否则Xcode将永远无法启动和附加到您的应用程序)。 <-- 不确定最后一部分是否仍然正确。

我已经按照您所描述的更新到iOS4和XCode4 DP2(顺便说一句,XCode4 DP2非常棒),并没有遇到这个问题。听起来像是安装有问题或在过程中某些东西损坏或放错了位置。


谢谢你的回答 - 你说得对:DP2真是太棒了 :)重新创建配置文件并重新安装它们是我修复此问题的第一次尝试 - 所以是的,我已经尝试过了。Entitlements-plist中的get-task-allow密钥也已打开。我查看了你链接的博客文章,所有我的ID都是相同的。 - the_rob
你的手机越狱了吗?0xE8008001在很多谷歌搜索结果中只出现在越狱手机上。 - iwasrobbed
是的,我也注意到了 :)不,它没有越狱,也没有被任何方式篡改过。 - the_rob
嗯,那我就束手无策了。如果你说它是从iOS4开始出现的,那么你可能需要尝试恢复或重新安装(特别是如果你还没有4.0.1版本)。这种类型的错误真的很让人烦恼。很抱歉我不能提供更多帮助! - iwasrobbed
嘿,别担心。我很感激。我在调试过程中又进了一步(在最初的问题上发布了更新)。我现在猜测问题可能出在代码签名上。 - the_rob

0

Xcode 4不适用于分发构建。您需要使用Xcode 3.2.3进行构建。

来自Xcode 4自述文件:

请注意:Xcode 4是测试版软件。继续使用Xcode 3.2.x进行生产开发。此版本的Xcode 4与Xcode 3.2.x项目文件兼容。


嗨Steve,感谢您的回答。虽然我确实没有阅读那篇文章,但我应该注意到我也尝试过通过XCode 3.2.4部署我的应用程序。不幸的是,它产生了相同的结果。 - the_rob
我看到你已经解决了你的问题,但是我要指出Xcode 3.2.4是iOS 4.1 beta版本,也不适用于发布构建。 - Steve Madsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接