xcode 7.1立即崩溃没有输出

时间:2015-11-18 20:32:46

标签: xcode cocoa-touch

序:

我试图让iPad专业版以原始分辨率运行我的应用,所以我添加了一个启动屏幕文件。我将新控制器设置为一个入口点,然后经过一些调整后我删除了文件并返回到没有启动屏幕。

崩溃: 除了(lldb)之外,我没有输出。我在控制台中键入bt并获得以下内容

输出

* thread #1: tid = 0xd26faa, 0x000000011351ddbb libobjc.A.dylib`objc_exception_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x000000011351ddbb libobjc.A.dylib`objc_exception_throw
    frame #1: 0x0000000112730159 UIKit`+[UIStoryboard storyboardWithName:bundle:] + 727
    frame #2: 0x0000000112015c7f UIKit`-[UIApplication _loadMainStoryboardFileNamed:bundle:] + 58
    frame #3: 0x0000000112015fd3 UIKit`-[UIApplication _loadMainInterfaceFile] + 260
    frame #4: 0x0000000112014851 UIKit`-[UIApplication _runWithMainScene:transitionContext:completion:] + 1380
    frame #5: 0x0000000112011ba3 UIKit`-[UIApplication workspaceDidEndTransaction:] + 188
    frame #6: 0x000000011a5b0784 FrontBoardServices`-[FBSSerialQueue _performNext] + 192
    frame #7: 0x000000011a5b0af2 FrontBoardServices`-[FBSSerialQueue _performNextFromRunLoopSource] + 45
    frame #8: 0x0000000113a85011 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #9: 0x0000000113a7af3c CoreFoundation`__CFRunLoopDoSources0 + 556
    frame #10: 0x0000000113a7a3f3 CoreFoundation`__CFRunLoopRun + 867
    frame #11: 0x0000000113a79e08 CoreFoundation`CFRunLoopRunSpecific + 488
    frame #12: 0x00000001120114f5 UIKit`-[UIApplication _run] + 402
    frame #13: 0x000000011201630d UIKit`UIApplicationMain + 171
  * frame #14: 0x000000010fa23b22 MyApp`main(argc=1, argv=0x00007fff501e1818) + 146 at main.m:28
    frame #15: 0x00000001179f892d libdyld.dylib`start + 1
    frame #16: 0x00000001179f892d libdyld.dylib`start + 1

当然main.m是通用的,没有帮助

的main.m

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

/*
int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}
*/

int main(int argc, char *argv[]) {

    //NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = -1;
    @try {
        @autoreleasepool {
            retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }
    @catch (NSException* exception) {
//        NSLog(@"Uncaught exception: %@", exception.description);
//        NSLog(@"Stack trace: %@", [exception callStackSymbols]);
    }
    //[pool release];
    return retVal;
}

我的下一次故障排除应该是什么?

1 个答案:

答案 0 :(得分:1)

在xcode 7.1(和许多其他版本)中,在应用程序的常规设置中,您会找到许多字段,包括:

  • 主界面 (在部署信息下)
  • 启动屏幕文件 (在应用图标和启动图片下)

问题

我不知道确切的时间,但在某些时候我已经混淆了这两个选项。作为故障排除策略的一部分,我开始回顾应用程序运行时的状态。在那个过程中我遇到了这个错误。这个错误试图告诉我,非常模糊,我的应用程序中的某些东西没有响应某个(未指定的)选择器。我不打算筛选100多个文件,所以我再次开始向后工作。

解决方案

  • 确保主界面storyboard (文件&gt;新&gt;文件...&gt;故事板),并设置了启动点。
  • 确保启动屏幕文件launch screen (文件&gt;新&gt;文件...&gt;启动屏幕)注意 - 您可以选择如果您不需要/需要它,请不要使用启动屏幕。我使用一个,因为这是让你的应用程序在iPhone 6(s)/ 6(s)+ / iPad Pro上以原始分辨率显示的简单方法。