【问题标题】:iPad app, will run in debug but adhoc crashesiPad 应用程序,将在调试中运行,但临时崩溃
【发布时间】:2011-02-10 12:18:15
【问题描述】:

这是崩溃日志

Date/Time:       2011-02-10 21:12:00.478 +0900
OS Version:      iPhone OS 4.2.1 (8C148)
Report Version:  104

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

Thread 0 Crashed:
0   libSystem.B.dylib               0x30d7c2d4 __kill + 8
1   libSystem.B.dylib               0x30d7c2c4 kill + 4
2   libSystem.B.dylib               0x30d7c2b6 raise + 10
3   libSystem.B.dylib               0x30d90d72 abort + 50
4   libstdc++.6.dylib               0x34981a20 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x34a83594 _objc_terminate + 104
6   libstdc++.6.dylib               0x3497fdf2 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x3497fe46 std::terminate() + 10
8   libstdc++.6.dylib               0x3497ff16 __cxa_throw + 78
9   libobjc.A.dylib                 0x34a824c4 objc_exception_throw + 64
10  CoreFoundation                  0x3587c1a8 +[NSObject(NSObject) doesNotRecognizeSelector:] + 96
11  CoreFoundation                  0x35823aa2 ___forwarding___ + 502
12  CoreFoundation                  0x35823858 _CF_forwarding_prep_0 + 40
13  PictureDictionary               0x00005fe4 sgLoadFileImage(char const*, long*) (PictureDictionary.mm:41)
14  PictureDictionary               0x000061b0 CPictureDictionary::LoadPageData() (PictureDictionary.mm:814)
15  PictureDictionary               0x00006d02 CPictureDictionary::Update() (PictureDictionary.mm:505)
16  PictureDictionary               0x00003216 -[ES1Renderer render] (ES1Renderer.mm:63)

我的代码中开始崩溃的那一行(上面的堆栈垃圾#13)是

NSString* pStr = [[NSString 分配] initWithUTF8String: pFileName];

由于某种原因,它在这里崩溃了。 奇怪的是它在调试模式下运行良好。但是当我通过 iTunes 进行临时构建并将其放入 iPad 时,就会发生上述崩溃。

我已经清理和重建了很多次,确保我的配置文件和标识符是正确的。 我不知道为什么会发生这种情况。任何见解或建议都会有所帮助。

谢谢。

【问题讨论】:

    标签: ipad ios adhoc sigabrt


    【解决方案1】:

    对不起,我不是大师,但也许这会有所帮助。

    这种类型的崩溃发生在 Cocoa 在运行时找不到您正在调用的方法时。

    通常您会在编译期间收到警告。

    也就是说,它似乎在抱怨找不到objective-C选择器(方法)。但是,sgLoadFileImage 在我看来是一个 C 函数。

    当然,您的调试版本和发布版本之间有些不同。代码不同,或者提供给方法和函数的参数不同。

    【讨论】:

    • 谢谢,我仍然不知道它是什么,但我删除了我的临时构建设置,复制了我的调试构建设置,只是更改了配置文件并修复了它。我想我必须改变一些东西并且没有注意到。
    • 我也不知道,但我只是从头开始使用 BUILD 配置,它也对我有用
    • @funckymonk 我的 AdHoc 配置是 RELEASE 的克隆,不是 DEBUG。 (如果 RELEASE,我的 AppStore 配置一个克隆)。我想知道你为什么不一样。无论如何,我的应用程序在 AdHoc 中崩溃,但在从 Xcode 运行 RELEASE 配置时却没有……奇怪吗?崩溃日志是 EXC_BAD_ACCESS (SIGSEGV)。
    • 现在可以工作了...将几个 strong NSString 属性更改为“复制”。猜猜当没有附加调试器并且代码被优化时它会产生巨大的差异......
    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 2015-04-17
    相关资源
    最近更新 更多