Application works good when I run it with XCode. I tried my iOS 7, iOS 8 devices and simulators. I published application into App Store and after update it crashes at the launchscreen. I also tried to upload application into pre-release into TestFlight application and it crashes at launchscreen too. Could you help to debug it?
Crashlog:
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
I use Swift, XCode 6, deployment target iOS7+
Update:
Method code:
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)
}
Update 3
I found that if I add sleep after file reading it works ok. Thats really weird.
Without sleep:
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()
}
output
Path Exists
self.menuItems is nil
With sleep:
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()
}
output:
Path Exists
Content Exists
%here is data of my array%
Content Exists 2
%here is data of my array%
self.menuItems is NOT nil, BEFORE and AFTER sleep! o_O
I guess the problem lies with build settings, if you use swift in your project it seems that you should switch the flag in build settings
"Embedded Content Contains Swift Code"
from NO to YES.I had tried to google more info about this flag and I found some info on apple developer portal:
Also I came across with this article that looks like your problem: breefield.com/essays/critical-app-review
How I resolved the issue:
NSArray(contentsOfFile: path)
downcasting worked weird with swift arrays in archived app. Sometimes it downcasted normally, sometimes it returnednill
for the same plist file (no changes in file). I replaced all my[NSDictionary]
that worked with files intoNSArray?
and it works good now.The issue was only in archived for app store application (
.ipa
). If I run it on simulator or on the device, it works good with swift arrays too.Thanks for @fluidsonic for advice about casting.