我遇到了一个问题,如果我运行我的应用程序从应用程序商店安装它崩溃(在多个设备上)。但是,当我从xCode在设备上运行完全相同的代码时,它可以正常工作。
我一直在研究,我能找到的唯一建议是在发布模式下运行并将优化级别更改为最快,最小。我试过但它仍然没有崩溃。下面是我得到的崩溃日志:
Incident Identifier: 56DF41AE-4A6A-4328-A50E-03B2ECC245F5
CrashReporter Key: fabdf09dfea5dfb3a78e5ce49b1fda0291703647
Hardware Model: iPod4,1
Process: MobileScripts [356]
Path: /var/mobile/Applications/24524BCA-F897-45FE-87E5-3C807733C9C6/MobileScripts.app/MobileScripts
Identifier: MobileScripts
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2013-12-12 13:28:29.474 -0600
OS Version: iOS 6.1.5 (10B400)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x3195d29e __exceptionPreprocess + 158
1 libobjc.A.dylib 0x395dd97a objc_exception_throw + 26
2 CoreData 0x316fe0d6 -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 294
3 CoreData 0x317566de -[NSManagedObjectContext save:] + 726
4 MobileScripts 0x0002ce0a -[XML parser:didEndElement:namespaceURI:qualifiedName:] (XML.m:105)
5 Foundation 0x3227b28a _endElementNs + 298
6 libxml2.2.dylib 0x398f3e58 xmlParseEndTag2 + 612
7 libxml2.2.dylib 0x398f5546 xmlParseTryOrFinish + 1658
8 libxml2.2.dylib 0x398f4ce8 xmlParseChunk + 208
9 Foundation 0x32279d66 -[NSXMLParser parse] + 482
10 MobileScripts 0x0002c664 -[XML parseXml:] (XML.m:32)
11 MobileScripts 0x00034686 -[WebService parse] (WebService.m:114)
12 Foundation 0x322986f8 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 12
13 Foundation 0x321d81f4 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 196
14 Foundation 0x321d8110 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 56
15 CFNetwork 0x3163a45a ___delegate_didFinishLoading_block_invoke_0 + 22
16 CFNetwork 0x31639b3e ___withDelegateAsync_block_invoke_0 + 50
17 CFNetwork 0x31661fc6 ___performAsync_block_invoke_068 + 14
18 CoreFoundation 0x318a3748 CFArrayApplyFunction + 172
19 CFNetwork 0x31662426 RunloopBlockContext::perform() + 70
20 CFNetwork 0x315c6038 MultiplexerSource::perform() + 184
21 CoreFoundation 0x3193267e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 10
22 CoreFoundation 0x31931ee4 __CFRunLoopDoSources0 + 208
23 CoreFoundation 0x31930cb2 __CFRunLoopRun + 642
24 CoreFoundation 0x318a3eb8 CFRunLoopRunSpecific + 352
25 CoreFoundation 0x318a3d44 CFRunLoopRunInMode + 100
26 GraphicsServices 0x354562e6 GSEventRunModal + 70
27 UIKit 0x337b92fc UIApplicationMain + 1116
28 MobileScripts 0x0002c58e main (main.m:16)
29 libdyld.dylib 0x39a14b1c tlv_initializer + 4
我看到它与XML.m中的第105行不一样,这只是一个上下文保存:
[context save:&saveError];
就像我说的那样,当我从xcode运行时,这行很好用。有没有人对如何获得有关异常的更多信息或在调试时发生此问题有任何建议?
感谢您的帮助。
修改 我在崩溃期间看了设备日志,发现异常是“'NSInternalInconsistencyException',原因是:'这个NSPersistentStoreCoordinator没有持久存储。它不能执行保存操作。'”。知道为什么这只是从应用程序商店发生的吗?
答案 0 :(得分:1)
将设备连接到Xcode或iPhone配置程序并观看日志。
另外,如何查看save语句的范围。有没有尝试捕捉它?你有一个NSError
对象应该有信息。通常,它会使用NSLog
进行记录。
编辑:
在哪里获得商店创建路径并且设备有足够的空间来创建商店?
我猜了。您是否通过应用程序提供持久性存储?让我们说一个sqllight数据库是该应用程序的一部分?您可以从应用程序中读取文件但从不写入。您需要将预先制作的持久性存储移动到您具有写访问权限的目录之一。