从iOS审查流程了解崩溃报告
我正试图将一个应用程序上传到iOS应用程序商店,但由于崩溃,我被拒绝了(我无法用我拥有的几个模拟/设备重现) 我把坠机报告附在这里。 我遇到的问题是,我无法正确地重新标记崩溃,当我尝试右键单击并选择“重新标记它们”时,我只能得到以下结果:从iOS审查流程了解崩溃报告,ios,swift,crash,Ios,Swift,Crash,我正试图将一个应用程序上传到iOS应用程序商店,但由于崩溃,我被拒绝了(我无法用我拥有的几个模拟/设备重现) 我把坠机报告附在这里。 我遇到的问题是,我无法正确地重新标记崩溃,当我尝试右键单击并选择“重新标记它们”时,我只能得到以下结果: {"app_name":"Livycs","timestamp":"2019-10-21 13:36:46.22 -0700","app_version":"1.3","slice_uuid":"4ceb4db7-568a-3a47-a8e9-0e6d8ff3
{"app_name":"Livycs","timestamp":"2019-10-21 13:36:46.22 -0700","app_version":"1.3","slice_uuid":"4ceb4db7-568a-3a47-a8e9-0e6d8ff33b2b","adam_id":1054637602,"build_version":"12","bundleID":"me.linktree.Livycs","share_with_app_devs":false,"is_first_party":false,"bug_type":"109","os_version":"iPhone OS 13.1.3 (17A878)","incident_id":"B26974A6-3E7F-40F4-836A-BC4FF36D1219","name":"Livycs"}
Incident Identifier: B26974A6-3E7F-40F4-836A-BC4FF36D1219
CrashReporter Key: f76f6829cc13ca447c49f923305d7b23085e37fd
Hardware Model: xxx
Process: Livycs [394]
Path: /private/var/containers/Bundle/Application/1ADC7177-F01D-4C60-B624-730592A5C45A/Livycs.app/Livycs
Identifier: me.linktree.Livycs
Version: 12 (1.3)
AppStoreTools: 11A1002b
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: me.linktree.Livycs [530]
Date/Time: 2019-10-21 13:36:46.1480 -0700
Launch Time: 2019-10-21 13:34:25.7023 -0700
OS Version: iPhone OS 13.1.3 (17A878)
Release Type: User
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
Application Specific Information:
abort() called
Last Exception Backtrace:
0 CoreFoundation 0x1a450298c __exceptionPreprocess + 220
1 libobjc.A.dylib 0x1a422b0a4 objc_exception_throw + 55
2 CoreFoundation 0x1a43f8054 +[NSException raise:format:] + 107
3 UIKitCore 0x1a7eb70f8 UISearchDisplayControllerNoLongerSupported + 247
4 UIKitCore 0x1a7eb73fc -[UISearchDisplayController initWithCoder:] + 83
5 UIFoundation 0x1a7aab838 UINibDecoderDecodeObjectForValue + 727
6 UIFoundation 0x1a7aaba6c UINibDecoderDecodeObjectForValue + 1291
7 UIFoundation 0x1a7a47ec8 -[UINibDecoder decodeObjectForKey:] + 315
8 UIKitCore 0x1a7efe6e4 -[UIViewController initWithCoder:] + 1035
9 UIKitCore 0x1a81b9c2c -[UIClassSwapper initWithCoder:] + 2455
10 UIFoundation 0x1a7aab838 UINibDecoderDecodeObjectForValue + 727
11 UIFoundation 0x1a7aaba6c UINibDecoderDecodeObjectForValue + 1291
12 UIFoundation 0x1a7a47ec8 -[UINibDecoder decodeObjectForKey:] + 315
13 UIKitCore 0x1a81b8edc -[NSCoder+ 6917852 (UIIBDependencyInjectionInternal) _decodeObjectsAndTrackChildViewControllerIndexWithParent:forKey:] + 315
14 UIKitCore 0x1a7efe89c -[UIViewController initWithCoder:] + 1475
15 UIKitCore 0x1a7e41a84 -[UITabBarController initWithCoder:] + 79
16 UIKitCore 0x1a81b9c2c -[UIClassSwapper initWithCoder:] + 2455
17 UIFoundation 0x1a7aab838 UINibDecoderDecodeObjectForValue + 727
18 UIFoundation 0x1a7a47ec8 -[UINibDecoder decodeObjectForKey:] + 315
19 UIKitCore 0x1a81bdc50 -[UIRuntimeConnection initWithCoder:] + 127
20 UIFoundation 0x1a7aab838 UINibDecoderDecodeObjectForValue + 727
21 UIFoundation 0x1a7aaba6c UINibDecoderDecodeObjectForValue + 1291
22 UIFoundation 0x1a7a47ec8 -[UINibDecoder decodeObjectForKey:] + 315
23 UIKitCore 0x1a81b8cc8 -[NSCoder+ 6917320 (UIIBDependencyInjectionInternal) _decodeObjectsWithSourceSegueTemplate:creator:sender:forKey:] + 487
24 UIKitCore 0x1a81bb8b8 -[UINib instantiateWithOwner:options:] + 1111
25 UIKitCore 0x1a86617d8 -[UIStoryboard __reallyInstantiateViewControllerWithIdentifier:creator:storyboardSegueTemplate:sender:] + 287
26 Livycs 0x1040d44dc @objc WelcomeViewController.searchShowsAroundMeButtonClicked+ 165084 (_:) + 131
27 UIKitCore 0x1a8511a44 -[UIApplication sendAction:to:from:forEvent:] + 95
28 UIKitCore 0x1a7f556d0 -[UIControl sendAction:to:forEvent:] + 239
29 UIKitCore 0x1a7f55a34 -[UIControl _sendActionsForEvents:withEvent:] + 407
30 UIKitCore 0x1a7f54a50 -[UIControl touchesEnded:withEvent:] + 519
31 UIKitCore 0x1a854ad68 -[UIWindow _sendTouchesForEvent:] + 2323
32 UIKitCore 0x1a854c0a8 -[UIWindow sendEvent:] + 3351
33 UIKitCore 0x1a8528ae8 -[UIApplication sendEvent:] + 335
34 UIKitCore 0x1a85a023c __dispatchPreprocessedEventFromEventQueue + 5879
35 UIKitCore 0x1a85a2798 __handleEventQueueInternal + 4923
36 UIKitCore 0x1a859b60c __handleHIDEventFetcherDrain + 107
37 CoreFoundation 0x1a44807e0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 23
38 CoreFoundation 0x1a4480738 __CFRunLoopDoSource0 + 79
39 CoreFoundation 0x1a447fed0 __CFRunLoopDoSources0 + 179
40 CoreFoundation 0x1a447b01c __CFRunLoopRun + 1079
41 CoreFoundation 0x1a447a8bc CFRunLoopRunSpecific + 463
42 GraphicsServices 0x1ae2e6328 GSEventRunModal + 103
43 UIKitCore 0x1a85106d4 UIApplicationMain + 1935
44 Livycs 0x1040d246c main + 156780 (SearchLocationViewController.swift:14)
45 libdyld.dylib 0x1a4305460 start + 3
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001a42faebc __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001a4216790 pthread_kill$VARIANT$mp + 112
2 libsystem_c.dylib 0x00000001a416a8a0 __abort + 112
3 libsystem_c.dylib 0x00000001a416a830 __abort + 0
4 libc++abi.dylib 0x00000001a42c37d4 __cxa_bad_cast + 0
5 libc++abi.dylib 0x00000001a42c39c4 demangling_unexpected_handler+ 6596 () + 0
6 libobjc.A.dylib 0x00000001a422b358 _objc_terminate+ 25432 () + 124
7 Livycs 0x0000000104113a94 CLSTerminateHandler() + 424596 (CLSException.mm:0)
8 libc++abi.dylib 0x00000001a42d0304 std::__terminate(void (*)+ 58116 ()) + 16
9 libc++abi.dylib 0x00000001a42cfed8 __cxa_rethrow + 144
10 libobjc.A.dylib 0x00000001a422b258 objc_exception_rethrow + 40
11 CoreFoundation 0x00000001a447a92c CFRunLoopRunSpecific + 576
12 GraphicsServices 0x00000001ae2e6328 GSEventRunModal + 104
13 UIKitCore 0x00000001a85106d4 UIApplicationMain + 1936
14 Livycs 0x00000001040d246c main + 156780 (SearchLocationViewController.swift:14)
15 libdyld.dylib 0x00000001a4305460 start + 4
我认为它崩溃的代码(WelcomeViewController.swift)
请注意,我已经清除了BiAnalyticsService.logEvent…因为我认为它可能会导致问题,现在那里的代码是:
class func logEvent( eventName : String, withParameter : Dictionary<String,String>?){
// if withParameter == nil {
// mixpanel.track(eventName, properties: staticProperties)
// } else {
// var prm = withParameter!
//
// for key in staticProperties.keys {
// prm[key] = staticProperties[key]
// }
// mixpanel.track(eventName, properties: prm)
// }
}
class func logEvent(eventName:String,withParameter:Dictionary?){
//如果withParameter==nil{
//track(eventName,属性:staticProperties)
//}其他{
//var prm=withParameter!
//
//对于staticProperties.keys中的键{
//prm[key]=静态属性[key]
// }
//mixpanel.track(eventName,属性:prm)
// }
}
任何帮助都将不胜感激在代码“searchdisplay”中查找,它将出现在一个旧ViewController底部的故事板中,删除此searchdisplay项目,仅此而已
在我的例子中,SearchDisplay甚至链接到了outlet(实际上没有真正的outlet!没有一个编译器错误!),显然它没有被使用很长一段时间。崩溃只发生在审查小组中,或者通过TestFlight,而不是通过电缆,在任何设备上。审查小组的崩溃报告没有说明任何事情(symbolicate总是失败)所以,我花了三天时间完成了三个构建,直到从测试人员那个里得到了有用的报告
现在就使用TestFlight!电缆上的多重调试还不够是时候了:-(从iOS 13和iPad OS 13开始,使用Xcode 11构建的应用程序无法使用UISearchDisplayController。 从iOS 8开始就不推荐使用,您应该使用 为了在本地重现这一点,您需要测试应用程序的精简版本 如果您收到其中一个崩溃,但无法在本地复制, 确保您正在iOS上测试应用程序的部署版本 13,或者使用TestFlight,或者将应用程序细化应用到 Xcode存档并测试应用程序的精简版本,目标是 iOS 13设备。通过使用精简版进行测试,您将能够 复制此崩溃。将应用程序细化应用到本地Xcode 存档,使用临时 或开发选项,然后选择“所有兼容的设备变体” 用于应用细化选项。创建细化版本后, 您可以通过阅读以下内容来识别针对iOS 13的特定变体 作为输出一部分的应用程序细化大小报告文件,然后 安装并测试精简后的.ipa文件
请参阅:日志显示您正在尝试使用不推荐的搜索控制器
uisearchdisplaycontrollernologersupported
,您是否在最新的iOS上测试过它?那么您的应用程序是否真的使用了UISearchDisplayController???摆脱它并使用UISearchController。遵循以下线程:看起来确实存在UISearchDisplayController(作为iOS开发中的n00b,我没有注意到这一点),问题是它在13.1.3上运行时没有崩溃,所以我不知道它为什么没有崩溃-->无论如何,我已经设法将它从情节提要中删除,我希望它能解决这个问题…可能值得一提的是,在我的应用程序中没有直接使用UISearchDisplayController
,而只是一个默认的UISearchBar
>但是在故事板导航面板上看得更远,有一个搜索显示控制器
(以及该VC的第一响应者
和退出
),我删除了它,没有破坏任何功能,并阻止了崩溃。胜利!
class func logEvent( eventName : String, withParameter : Dictionary<String,String>?){
// if withParameter == nil {
// mixpanel.track(eventName, properties: staticProperties)
// } else {
// var prm = withParameter!
//
// for key in staticProperties.keys {
// prm[key] = staticProperties[key]
// }
// mixpanel.track(eventName, properties: prm)
// }
}