带iOS 4.2.1的越狱iPhone 3G可以';不能用XCode进行调试

带iOS 4.2.1的越狱iPhone 3G可以';不能用XCode进行调试,iphone,xcode,Iphone,Xcode,我正在尝试用XCode 3.2.5调试我的应用程序,用iOS 4.2.1调试越狱的iPhone3G 当我使用启用的断点启动调试时,应用程序无法启动(它会在“Default.png”屏幕上死机),并且数据格式化程序暂时不可用,将在“continue”后重试。(找不到dlopen函数,因此无法加载共享库。)GDB中的消息 当我在没有启用断点的情况下启动调试时,应用程序启动时不会出现问题 我试着做上面描述的步骤,但没有任何结果 当我使用iOS 4.1时,它有一个问题 在iPhone Organizer

我正在尝试用XCode 3.2.5调试我的应用程序,用iOS 4.2.1调试越狱的iPhone3G

当我使用启用的断点启动调试时,应用程序无法启动(它会在“Default.png”屏幕上死机),并且数据格式化程序暂时不可用,将在“continue”后重试。(找不到dlopen函数,因此无法加载共享库。)GDB中的消息

当我在没有启用断点的情况下启动调试时,应用程序启动时不会出现问题

我试着做上面描述的步骤,但没有任何结果

当我使用iOS 4.1时,它有一个问题

在iPhone Organizer的每个连接上显示以下消息:

**检测到未知iOS**Xcode没有名为“iPhone”的设备上iOS版本的调试信息。Xcode可以从设备收集调试数据,以支持使用此版本的iOS进行开发。每个iOS版本只需执行一次此过程,需要几分钟。


谢谢你的帮助

我的完全不越狱的iPhone在4.2.1中实现了这一点,并且得到了完全相同的消息和问题。这是最新版本的XCode中的新功能,因此可能有问题。

重新授权您的设备可能会解决您的问题:

  • 如果您的iPhone已插入计算机,将其拔下

  • 在Xcode中,显示组织者(窗口->组织者)

  • 设备区域中,单击您的设备并将其删除

  • 以防万一,退出Xcode,然后重新启动它

  • 再次打开管理器,然后将iPhone插入计算机

  • 告诉Xcode是的,您想授权设备

  • 如果一切正常,Xcode现在将下载4.2.1的设备信息

  • 如果这不起作用,我建议再次执行这些步骤,但将步骤4替换为从计算机中删除所有Xcode痕迹,然后重新安装。这包括整个开发者文件夹。

    越狱3GS/4.2.1

    我尝试了马修·弗雷德里克的推荐,但没有成功。有谁碰巧找到了解决这个问题的办法吗


    编辑

    请注意,我使用了越狱3GS和非越狱3GS。 解决方案,需要一款带有4.2.1(8C148a)的非越狱iPhone 3GS

  • 删除/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148a)
  • 将未越狱的iPhone 3GS连接到4.2.1(8C148a)
  • 打开Xcode和管理器
  • 单击管理器中的“用于开发”按钮,配置新iPhone进行开发
  • 让它从重新创建/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148a)中提取调试符号
  • 拔下插头,从管理器中卸下
  • 此时,您可以再次调试越狱的iPhone。
    干杯

    最新的Xcode+SDK版本不知道iOS 4.2.1,因为它是在最新补丁发布之前发布的。Xcode的Organizer有一个新功能,可以尝试直接从设备上下载调试支持文件,但显然对某些人来说,它有一些问题(可能与越狱有关)


    iOS 4.2.1与4.2非常相似,可以强制Xcode使用4.2支持文件在4.2.1设备上进行调试。要做到这一点,只需转到
    /Developer/Platforms/iPhoneOS.platform/DeviceSupport
    文件夹,手动复制
    Symbols
    子文件夹和/或
    developerdispage.*
    文件,从
    4.2(8C134)
    4.2.1(8C148)
    (或Organizer为您的设备创建的任何发布文件夹).

    除了Fnord的建议之外,还有一个建议是确保iPhone 3G越狱设备未启用多任务处理或PwnageTool中的“可重入功能”

    但我不确定这是否有效果。但是,如果我们真的想在真实世界的iPhone 3G环境下测试它,那么这样做是合理的。

    为了避免每次将iPhone呈现给XCode时在Organizer中(重新)收集调试符号(实际上什么都不做),一个简单的解决方法是复制:

    developerDiskAge.dmg和developerDiskAge.dmg.signature

    从4.2(8C134)到空的4.2.1(8C148)文件夹

    XCode将识别设备,您可以调试代码,但不需要IOS框架的调试符号。 但是,gdb控制台将处于活动状态,您可以使用它调试代码(使用调试符号)


    顺便说一句,您可以始终使用模拟器来获得完整的IOS支持:-)

    我喜欢您所说的“功能”:)可能需要更彻底的清洁。一只干净的雪豹?那只会浪费我的时间。你可能没有完全卸载Xcode。必须打开终端并输入
    sudo/Library/uninstall devtools--mode=all
    ,才能真正删除所有底层内容。我想这些数据保存在别的地方。~/Library/MobileDevice/Devices中的deviceinfo文件也已被删除。如果您不像那样通过命令行卸载它,可能会留下一些东西,使您无法进行真正的新安装。我知道。我总是用命令行卸载。例如,使用--mode=all卸载Xcode 4不会卸载unixdev和systemsupport。因此,我还尝试卸载unixdev和systemsupport,以及之后的所有。当我下载设备符号时,它仍然无法下载它们(只有dyld在符号文件夹中)。不幸的是,这是越狱的风险。这个问题似乎没有解决