AppStore发布后iOS应用程序崩溃

时间:2014-10-08 10:11:13

标签: ios xcode crash app-store

当我使用XCode运行它时,应用程序运行良好。我尝试了iOS 7,iOS 8设备和模拟器。我将应用程序发布到App Store中,并在更新后在启动屏幕上崩溃。我还尝试将应用程序上传到预发布的TestFlight应用程序中,它也在启动屏幕上崩溃。你能帮忙调试吗?

崩溃日志:

Incident Identifier: 5C421B8B-BFBF-475E-8C06-F5B76E3B36F4
CrashReporter Key:   1e8c22653ed4eb9bb1cec65ac6feb9963cf3ce48
Hardware Model:      iPhone6,2
Version:             1 (2.0.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2014-10-08 12:36:24.760 +0400
Launch Time:         2014-10-08 12:36:23.547 +0400
OS Version:          iOS 8.0.2 (12A405)
Report Version:      105

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000100134690
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   majorapp                        0x0000000100134690 @objc majorapp.SideBarViewController.init (majorapp.SideBarViewController.Type)(coder : ObjectiveC.NSCoder) -> majorapp.SideBarViewController (SideBarViewController.swift:30)
1   UIKit                           0x000000018bbedab0 -[UIClassSwapper initWithCoder:] + 232
2   UIKit                           0x000000018bcc5638 UINibDecoderDecodeObjectForValue + 808
3   UIKit                           0x000000018bcc52f4 -[UINibDecoder decodeObjectForKey:] + 340
4   UIKit                           0x000000018bbed5e0 -[UIRuntimeConnection initWithCoder:] + 164
5   UIKit                           0x000000018bcc5638 UINibDecoderDecodeObjectForValue + 808
6   UIKit                           0x000000018bcc55d8 UINibDecoderDecodeObjectForValue + 712
7   UIKit                           0x000000018bcc52f4 -[UINibDecoder decodeObjectForKey:] + 340
8   UIKit                           0x000000018bbeca40 -[UINib instantiateWithOwner:options:] + 1096
9   UIKit                           0x000000018bdab9ec -[UIStoryboard instantiateViewControllerWithIdentifier:] + 216
10  UIKit                           0x000000018bdaef5c -[UIStoryboardSegueTemplate _perform:] + 84
11  majorapp                        0x00000001001f23e0 -[SWRevealViewController loadStoryboardControllers] (SWRevealViewController.m:671)
12  majorapp                        0x00000001001f2610 -[SWRevealViewController loadView] (SWRevealViewController.m:733)
13  UIKit                           0x000000018b7e4a6c -[UIViewController loadViewIfRequired] + 84
14  UIKit                           0x000000018b7e49d8 -[UIViewController view] + 28
15  UIKit                           0x000000018b7eb0a0 -[UIWindow addRootViewControllerViewIfPossible] + 68
16  UIKit                           0x000000018b7e8844 -[UIWindow _setHidden:forced:] + 292
17  UIKit                           0x000000018b8596a8 -[UIWindow makeKeyAndVisible] + 52
18  UIKit                           0x000000018ba6cc0c -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2800
19  UIKit                           0x000000018ba6f184 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1476
20  UIKit                           0x000000018ba6d81c -[UIApplication workspaceDidEndTransaction:] + 180
21  FrontBoardServices              0x000000018f26d63c __31-[FBSSerialQueue performAsync:]_block_invoke + 24
22  CoreFoundation                  0x000000018701a35c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16
23  CoreFoundation                  0x0000000187019464 __CFRunLoopDoBlocks + 308
24  CoreFoundation                  0x0000000187017664 __CFRunLoopRun + 692
25  CoreFoundation                  0x0000000186f45660 CFRunLoopRunSpecific + 392
26  UIKit                           0x000000018b84f4fc -[UIApplication _run] + 548
27  UIKit                           0x000000018b84a4f4 UIApplicationMain + 1484
28  majorapp                        0x0000000100164ac8 main (AppDelegate.swift:0)
29  libdyld.dylib                   0x0000000197cb6a04 start + 0

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x0000000197db4c94 kevent64 + 8
1   libdispatch.dylib               0x0000000197c9c97c _dispatch_mgr_invoke + 272
2   libdispatch.dylib               0x0000000197c8f4a0 _dispatch_mgr_thread + 48

Thread 2:
0   libsystem_kernel.dylib          0x0000000197dcfc78 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000197e69390 _pthread_wqthread + 988
2   libsystem_pthread.dylib         0x0000000197e68fa4 start_wqthread + 0

Thread 3 name:  Dispatch queue: SCNetworkReachability.concurrent
Thread 3:
0   libsystem_kernel.dylib          0x0000000197dcf0c0 __psynch_mutexwait + 8
1   libsystem_pthread.dylib         0x0000000197e69548 _pthread_mutex_lock + 416
2   SystemConfiguration             0x000000018b77a92c __SCNetworkReachabilityUpdateConcurrent + 164
3   SystemConfiguration             0x000000018b77b0fc ____SCNetworkReachabilityUpdate_block_invoke + 40
4   libdispatch.dylib               0x0000000197c8d498 _dispatch_call_block_and_release + 20
5   libdispatch.dylib               0x0000000197c8d458 _dispatch_client_callout + 12
6   libdispatch.dylib               0x0000000197c96020 _dispatch_async_redirect_invoke + 688
7   libdispatch.dylib               0x0000000197c8d458 _dispatch_client_callout + 12
8   libdispatch.dylib               0x0000000197c99408 _dispatch_root_queue_drain + 1140
9   libdispatch.dylib               0x0000000197c9a758 _dispatch_worker_thread3 + 104
10  libsystem_pthread.dylib         0x0000000197e692e0 _pthread_wqthread + 812
11  libsystem_pthread.dylib         0x0000000197e68fa4 start_wqthread + 0

Thread 4 name:  Dispatch queue: SCNetworkReachability.concurrent
Thread 4:
0   libsystem_kernel.dylib          0x0000000197db4eb8 semaphore_wait_trap + 8
1   libdispatch.dylib               0x0000000197c9aa4c _dispatch_semaphore_wait_slow + 252
2   libxpc.dylib                    0x0000000197e92374 xpc_connection_send_message_with_reply_sync + 184
3   SystemConfiguration             0x000000018b7b0c9c __SCNetworkReachabilityServer_targetStatus + 192
4   SystemConfiguration             0x000000018b77d190 __SCNetworkReachabilityGetFlags + 440
5   SystemConfiguration             0x000000018b77a99c __SCNetworkReachabilityUpdateConcurrent + 276
6   SystemConfiguration             0x000000018b77b0fc ____SCNetworkReachabilityUpdate_block_invoke + 40
7   libdispatch.dylib               0x0000000197c8d498 _dispatch_call_block_and_release + 20
8   libdispatch.dylib               0x0000000197c8d458 _dispatch_client_callout + 12
9   libdispatch.dylib               0x0000000197c96020 _dispatch_async_redirect_invoke + 688
10  libdispatch.dylib               0x0000000197c8d458 _dispatch_client_callout + 12
11  libdispatch.dylib               0x0000000197c99408 _dispatch_root_queue_drain + 1140
12  libdispatch.dylib               0x0000000197c9a758 _dispatch_worker_thread3 + 104
13  libsystem_pthread.dylib         0x0000000197e692e0 _pthread_wqthread + 812
14  libsystem_pthread.dylib         0x0000000197e68fa4 start_wqthread + 0

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000001   x1: 0x000000020000078c   x2: 0x000000017810fa58   x3: 0x0000000197e09a74
    x4: 0x00000001782a0980   x5: 0x0000000000000001   x6: 0x000000017826b580   x7: 0x0000000000000000
    x8: 0x0000000000000000   x9: 0x000001a5982c81c9  x10: 0x0000000000000007  x11: 0x00000001982d48a0
   x12: 0x000000015d00dc00  x13: 0x000001a5982c81c9  x14: 0x0000000000003fff  x15: 0x0000000000000000
   x16: 0x0000000197e61698  x17: 0x0000000186f65f0c  x18: 0x0000000000000000  x19: 0x000000017810fa50
   x20: 0x4000000000000074  x21: 0x0000000170007af0  x22: 0x000000017810fa50  x23: 0x0000000178057df0
   x24: 0x0000000178057e20  x25: 0x0000000000000000  x26: 0x0000000000000000  x27: 0x0000000198eee000
   x28: 0x0000000198eee000  fp: 0x000000016fd054c0   lr: 0x0000000100134690
    sp: 0x000000016fd05480   pc: 0x0000000100134690 cpsr: 0x60000000

我使用Swift,XCode 6,部署目标iOS7 +

更新

方法代码:

required init(coder aDecoder: NSCoder)  {
    let path = NSBundle.mainBundle().pathForResource("menu_items", ofType: "plist")
    self.menuItems = NSArray(contentsOfFile: path!) as [NSDictionary]
    super.init(coder: aDecoder)
}

更新3

我发现如果我在文件读取后添加睡眠它可以正常工作。那太奇怪了。

没有睡觉:

override func viewDidLoad() {
    super.viewDidLoad()
    if let path = NSBundle.mainBundle().pathForResource("menu_items", ofType: "plist") {
        self.menuItems = NSArray(contentsOfFile: path) as? [NSDictionary]
        NSLog("Path Exists");
        if let mi = self.menuItems {
            NSLog("Content Exists");
            NSLog("%@",mi)
        }
    }
    self.menuTableView.reloadData()
}

输出

Path Exists

self.menuItems是零

睡觉:

 override func viewDidLoad() {
    super.viewDidLoad()
    if let path = NSBundle.mainBundle().pathForResource("menu_items", ofType: "plist") {
        self.menuItems = NSArray(contentsOfFile: path) as? [NSDictionary]
        NSLog("Path Exists");
        if let mi = self.menuItems {
            NSLog("Content Exists");
            NSLog("%@",mi)
        }
        sleep(10)
        if let mi = self.menuItems {
            NSLog("Content Exists 2");
            NSLog("%@",mi)
        }
    }
    self.menuTableView.reloadData()
}

输出:

Path Exists
Content Exists
%here is data of my array%
Content Exists 2
%here is data of my array%

self.menuItems不是零,睡觉之前和之后! O_O

2 个答案:

答案 0 :(得分:1)

我想问题在于构建设置,如果在项目中使用swift,似乎应该将构建设置"Embedded Content Contains Swift Code"中的标志从NO切换到YES。

我曾试图谷歌更多关于这个标志的信息,我在苹果开发者门户网站上找到了一些信息:

  

构建不包含Swift源文件的应用程序时   但嵌入其他内容(如框架,XPC服务,应用程序   扩展,等等)确实包含Swift代码,你必须设置   构建设置嵌入式内容包含Swift代码   (EMBEDDED_CONTENT_CONTAINS_SWIFT)。这样Swift库就会这样   被包括在申请中。 (17757566)

此外,我发现这篇文章看起来像你的问题:breefield.com/essays/critical-app-review

答案 1 :(得分:1)

我是如何解决这个问题的:

NSArray(contentsOfFile: path)向下转型对归档应用中的swift数组很奇怪。有时候它会正常下载,有时会为同一个plist文件返回nill(文件中没有变化)。我将所有使用文件的[NSDictionary]替换为NSArray?,现在效果很好。

此问题仅针对应用商店应用(.ipa)存档。如果我在模拟器或设备上运行它,它也适用于swift数组。

感谢@fluidsonic提供关于施法的建议。