Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 应用程序在设备上启动时崩溃,但在模拟器上运行正常_Objective C_Ios_Xcode - Fatal编程技术网

Objective c 应用程序在设备上启动时崩溃,但在模拟器上运行正常

Objective c 应用程序在设备上启动时崩溃,但在模拟器上运行正常,objective-c,ios,xcode,Objective C,Ios,Xcode,我的应用程序在模拟器中运行良好,但在设备上崩溃。我如何找出是什么导致它在设备上崩溃 事故日志: OS Version: iPhone OS 5.1 (9B176) Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x00000000, 0x00000000 Crashed Thread: 0 Thread 0 name: Dispatch queue: com.apple.ma

我的应用程序在模拟器中运行良好,但在设备上崩溃。我如何找出是什么导致它在设备上崩溃

事故日志:

OS Version:      iPhone OS 5.1 (9B176)
Report Version:  104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x373a332c __pthread_kill + 8
1   libsystem_c.dylib               0x339b8208 pthread_kill + 48
2   libsystem_c.dylib               0x339b1298 abort + 88
3   GraphicsServices                0x30bfd87c GSRegisterPurpleNamedPort + 188
4   GraphicsServices                0x30bfe2bc GSEventInitialize + 64
5   UIKit                           0x36e6cc5a UIApplicationMain + 534
6   AppleIns HD                     0x00078bd6 0x77000 + 7126
7   AppleIns HD                     0x00078b80 0x77000 + 7040

您在模拟器和设备中运行的目标是否相同?如果是这样,只需尝试以下操作即可开始调试:

@try {
    retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([YOUR-AppDelegate-HERE class]));
}
@catch (NSException *exception) {
    NSLog(@"Exception - %@",[exception description]);
    exit(EXIT_FAILURE);
}

将它放在main.m文件中,这样每当您没有捕获到异常时,它就会冒泡到main文件中,在不让您知道发生了什么情况的情况下,它不会使它崩溃。

您在模拟器和设备中运行的是同一个目标吗?如果是这样,只需尝试以下操作即可开始调试:

@try {
    retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([YOUR-AppDelegate-HERE class]));
}
@catch (NSException *exception) {
    NSLog(@"Exception - %@",[exception description]);
    exit(EXIT_FAILURE);
}

将它放在main.m文件中,这样每当您没有捕获到异常时,它就会冒泡到main,在不让您知道发生了什么情况的情况下,它不会使它崩溃。

尝试从设备中删除该应用程序。还有,我们谈论的是什么设备(iPhone3GS、4、4s、iPad、iTouch(新一代?)等等

如果删除应用程序没有解决任何问题,我会检查以下事项(假设您通过Xcode在设备上运行应用程序):

  • 在AppDelegate中的
    ApplicationIDFinishLaunchingWithOptions
    方法中放入NSLog语句。这至少会告诉您springboard是否成功启动了应用程序
  • 确保您没有设置任何图形文件(启动屏幕图像、故事板、Nib文件、UI元素等),这些文件仅为视网膜显示设计,或未为正在运行它的设备设计。
  • 如果执行该NSLog语句,则从您在
    ApplicationIDFinishLaunchingWithOptions
    中执行的任何操作开始设置断点,然后逐步执行代码,直到应用程序崩溃。这将为您提供集中故障排除的位置。您也可以在pla中使用NSLog语句设置断点的位置

  • 尝试从您的设备中删除应用程序。另外,我们谈论的是什么设备(iPhone3GS、4、4s、iPad、iTouch(新一代?)等

    如果删除应用程序没有解决任何问题,我会检查以下事项(假设您通过Xcode在设备上运行应用程序):

  • 在AppDelegate中的
    ApplicationIDFinishLaunchingWithOptions
    方法中放入NSLog语句。这至少会告诉您springboard是否成功启动了应用程序
  • 确保您没有设置任何图形文件(启动屏幕图像、故事板、Nib文件、UI元素等),这些文件仅为视网膜显示设计,或未为正在运行它的设备设计。
  • 如果执行该NSLog语句,则从您在
    ApplicationIDFinishLaunchingWithOptions
    中执行的任何操作开始设置断点,然后逐步执行代码,直到应用程序崩溃。这将为您提供集中故障排除的位置。您也可以在pla中使用NSLog语句设置断点的位置

  • 此崩溃发生在您的应用程序启动之前,即在调用代理的ApplicationIDFinishLaunchingWithOptions方法之前

    尝试:

  • 重新启动设备
  • 断开并重新连接设备
  • 重新启动计算机

  • 此崩溃发生在您的应用程序启动之前,即在调用代理的ApplicationIDFinishLaunchingWithOptions方法之前

    尝试:

  • 重新启动设备
  • 断开并重新连接设备
  • 重新启动计算机


  • 你能在代码中找到它崩溃的确切位置吗(即使用制动点)?你试过重新启动你的设备吗?检查:你正在用Xcode在设备上调试吗?如果是,它应该指出它崩溃的地方…0x373a332c:blo 0x373a3344;u pthread_kill+32在这种情况下我会做的随机事情:删除设备中的应用程序,关闭设备,再次打开它,然后运行应用程序d对我来说……也许你可以试一下……你能在代码中找到它崩溃的确切位置吗(例如使用制动点)?你试过重新启动你的设备吗?检查:你正在用Xcode在设备上调试吗?如果是,它应该指出它崩溃的地方…0x373a332c:blo 0x373a3344;u pthread_kill+32在这种情况下我会做的随机事情:删除设备中的应用程序,关闭设备,再次打开它,然后运行应用程序d对我来说..也许你可以尝试一下..控制台显示了什么吗?控制台显示了什么吗?NSLog在ApplicationIDFinishLaunchingWithOptions中不起作用。行内崩溃:返回UIApplicationMain(argc,argv,nil,NSStringFromClass([AIAppDelegate class]));NSLog在ApplicationIDFinishLaunchingWithOptions中有效。它必须在return语句之前。最好将其放在方法的顶部。NSLog在ApplicationIDFinishLaunchingWithOptions中无效。行内崩溃:return UIApplicationMain(argc、argv、nil、NSStringFromClass([AIAppDelegate class]);NSLog在ApplicationIDFinishLaunchingWithOptions中有效。它必须在return语句之前。最好放在方法的顶部。