几个崩溃日志让我难过
Couple of crash logs got me stumped
在测试期间,我的 2 位 Beta 测试人员报告了崩溃。这些是仅有的两个,并且都经历了不同的崩溃。我只是看不出是什么导致了崩溃。我希望如果我 post 在这里,有人可以将我推向正确的方向。
Incident Identifier: FE4706B0-96FB-4F6A-89A3-14965A89D4C9
Beta Identifier: 5AB9E26F-1DF9-4826-B9F4-D51E7529306E
Hardware Model: iPhone7,2
Process: AnApplication [356]
Path: /private/var/mobile/Containers/Bundle/Application/C1F6D736-BB16-4604-965A-5AFED492B02C/We Motovlog.app/We Motovlog
Identifier: com.aWebAddresss.We-Motovlog
Version: 1.0.8 (1.0)
Beta: YES
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-10-01 21:13:21.21 +0100
Launch Time: 2015-10-01 21:12:53.53 +0100
OS Version: iOS 9.0.1 (13A404)
Report Version: 105
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000001000b5224
Triggered by Thread: 0
Global Trace Buffer (reverse chronological seconds):
12.054284 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fdb5800 SSL Handshake DONE
12.240634 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fdb5800 starting SSL negotiation
12.241194 CFNetwork 0x000000018251f760 TCP Conn 0x15fdb5800 complete. fd: 6, err: 0
12.242804 CFNetwork 0x0000000182520c8c TCP Conn 0x15fdb5800 event 1. err: 0
12.329534 CFNetwork 0x0000000182520d64 TCP Conn 0x15fdb5800 started
12.333102 CFNetwork 0x00000001825765a4 Creating default cookie storage with default identifier
12.333102 CFNetwork 0x0000000182576570 Faulting in CFHTTPCookieStorage singleton
12.333103 CFNetwork 0x00000001825c8498 Faulting in NSHTTPCookieStorage singleton
14.578179 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fe98dd0 SSL Handshake DONE
14.769610 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fe98dd0 starting SSL negotiation
14.770747 CFNetwork 0x000000018251f760 TCP Conn 0x15fe98dd0 complete. fd: 6, err: 0
14.772033 CFNetwork 0x0000000182520c8c TCP Conn 0x15fe98dd0 event 1. err: 0
14.854070 CFNetwork 0x0000000182520d64 TCP Conn 0x15fe98dd0 started
15.166164 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fd7e620 SSL Handshake DONE
15.549554 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fd7e620 starting SSL negotiation
15.550051 CFNetwork 0x000000018251f760 TCP Conn 0x15fd7e620 complete. fd: 6, err: 0
15.551401 CFNetwork 0x0000000182520c8c TCP Conn 0x15fd7e620 event 1. err: 0
15.640146 CFNetwork 0x0000000182520d64 TCP Conn 0x15fd7e620 started
27.110642 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fda0c10 SSL Handshake DONE
27.397462 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fda0c10 starting SSL negotiation
27.397862 CFNetwork 0x000000018251f760 TCP Conn 0x15fda0c10 complete. fd: 6, err: 0
27.398833 CFNetwork 0x0000000182520c8c TCP Conn 0x15fda0c10 event 1. err: 0
27.651662 CFNetwork 0x0000000182520d64 TCP Conn 0x15fda0c10 started
Thread 0 name:
Thread 0 Crashed:
0 We Motovlog 0x00000001000b5224 RegisterViewController.insertUserConfirmedIntoDatabase() -> () (RegisterViewController.swift:0)
1 We Motovlog 0x00000001000be268 RegisterViewController.(selectTwitterAccount(RegisterViewController) -> (NSNotification) -> ()).(closure #1).(closure #2) (RegisterViewController.swift:312)
2 UIKit 0x000000018871f19c -[UIAlertController _fireOffActionOnTargetIfValidForAction:] + 100 (UIAlertController.m:1008)
3 UIKit 0x000000018871f934 __85-[UIAlertController _dismissAnimated:triggeringAction:triggeredByPopoverDimmingView:]_block_invoke + 32 (UIAlertController.m:1142)
4 UIKit 0x0000000188617c10 -[UIPresentationController transitionDidFinish:] + 1320 (UIPresentationController.m:294)
5 UIKit 0x000000018861adf8 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 188 (UIPresentationController.m:738)
6 UIKit 0x00000001883fb0a4 -[_UIViewControllerTransitionContext completeTransition:] + 116 (UIViewControllerTransitioning.m:236)
7 UIKit 0x0000000188309828 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 628 (UIView.m:9265)
8 UIKit 0x0000000188309324 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312 (UIView.m:1271)
9 UIKit 0x00000001883091ac -[UIViewAnimationState animationDidStop:finished:] + 108 (UIView.m:1310)
10 QuartzCore 0x0000000187ad9040 CA::Layer::run_animation_callbacks(void*) + 284 (CALayer.mm:6653)
11 libdispatch.dylib 0x0000000198165770 _dispatch_client_callout + 16 (object.m:513)
12 libdispatch.dylib 0x000000019816ae20 _dispatch_main_queue_callback_4CF + 1844 (inline_internal.h:1063)
13 CoreFoundation 0x0000000182d30258 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1615)
14 CoreFoundation 0x0000000182d2e0c0 __CFRunLoopRun + 1628 (CFRunLoop.c:2721)
15 CoreFoundation 0x0000000182c5cdc0 CFRunLoopRunSpecific + 384 (CFRunLoop.c:2814)
16 GraphicsServices 0x000000018ddb0088 GSEventRunModal + 180 (GSEvent.c:2247)
17 UIKit 0x0000000188336f60 UIApplicationMain + 204 (UIApplication.m:3663)
18 We Motovlog 0x00000001000c14c0 main (AppDelegate.swift:19)
19 libdyld.dylib 0x00000001981968b8 start + 4 (start_glue.s:80)
以及它似乎崩溃的代码。
func insertUserConfirmedIntoDatabase(){
let defaults = NSUserDefaults.standardUserDefaults()
defaults.synchronize()
var parameters = ""
if let YouTubeChannelID = defaults.valueForKey("YTchannelID"){
parameters = "YouTubeChannelID=\(YouTubeChannelID)&"
}
if let TwitterID = defaults.valueForKey("chosenTwitterID"){
parameters = parameters.stringByAppendingString("TwitterID=\(TwitterID)&")
}
if let Subscribers = defaults.valueForKey("YTchannelsubscriberCount"){
parameters = parameters.stringByAppendingString("Subscribers=\(Subscribers)&")
}
if let VloggerYouTubeName = defaults.valueForKey("YTchannelName"){
parameters = parameters.stringByAppendingString("VloggerYouTubeName=\(VloggerYouTubeName)&") }
if let VloggersEmail = defaults.valueForKey("usersEmail"){
parameters = parameters.stringByAppendingString("VloggersEmail=\(VloggersEmail)&")
}
if let VloggersUserID = defaults.valueForKey("userGoogleID"){
parameters = parameters.stringByAppendingString("VloggersUserID=\(VloggersUserID)&")
}
if let VloggersCountry = defaults.valueForKey("YTchannelCountry"){
parameters = parameters.stringByAppendingString("VloggersCountry=\(VloggersCountry)&")
}
if let VloggerYouTubeTitle = defaults.valueForKey("YTchannelTitle"){
parameters = parameters.stringByAppendingString("VloggerYouTubeTitle=\(VloggerYouTubeTitle)")
}
let url = NSURL(string: "https://website.com/TMVUKApp/updateProfile.php?\(parameters)")!
print("if let params \(url)")
let request = NSURLRequest(URL: url)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) {
(data, response, error) -> Void in
if error == nil{
self.performSegueWithIdentifier("loggedInSegue", sender: nil)
}
}
task.resume()
}
以及调用
的代码
insertUserConfirmedIntoDatabase()
func selectTwitterAccount(notification: NSNotification){
let selectTwitterAccount = UIAlertController(title: "Select the account associated with your youTube persona", message: "", preferredStyle: .Alert)
let receivedDictionary = notification.userInfo!
let arrayOfUsernames = receivedDictionary["usernames"] as! NSArray
NSNotificationCenter.defaultCenter().removeObserver(self, name: "selectTwitterAccountNotification", object: nil)
for username in arrayOfUsernames{
selectTwitterAccount.addAction(UIAlertAction(title: username.username, style: UIAlertActionStyle.Default, handler: { (alertAction) -> Void in
NSUserDefaults.standardUserDefaults().setValue(username.username!, forKey: "chosenTwitterID")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "userhasConfirmedProfile")
NSUserDefaults.standardUserDefaults().synchronize()
self.insertUserConfirmedIntoDatabase()
}))
}
selectTwitterAccount.addAction(UIAlertAction(title: "No twitter", style:UIAlertActionStyle.Destructive, handler: { (UIAlertAction) -> Void in
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "userhasConfirmedProfile")
NSUserDefaults.standardUserDefaults().synchronize()
self.insertUserConfirmedIntoDatabase()
}))
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(selectTwitterAccount, animated: true) { () -> Void in
}
})
}
这是仅发生在 1 位用户身上的崩溃之一。我首先认为这可能是由于某些 NSUserDefaults 未设置,但我已经使用 if let 语句处理了这些,但它仍然崩溃。
一如既往,如果能帮助我调试此问题,我们将不胜感激。
为什么会崩溃?
我的猜测与 session.dataTaskWithRequest() 调用有关。尝试让您的应用程序进入调用该代码之前的状态,然后关闭所有互联网连接并执行任何您想要触发该代码的操作 运行。这将 'simulate' 在使用该应用程序的过程中断开连接。
我最近发现了一些非常相似的问题,用户崩溃并丢失了凭据。日志显示:
1.087128 CFNetwork 0x0000000183f22608 Creating default cookie storage with default identifier
1.087128 CFNetwork 0x0000000183f225d4 Faulting in CFHTTPCookieStorage singleton
1.087128 CFNetwork 0x0000000183f74394 Faulting in NSHTTPCookieStorage singleton
我使用 setValue()
几个月了,几周前就开始崩溃了。将 setValue 更改为 setObject 似乎有所帮助。这两天没问题。等待 AppStore 发布。
在测试期间,我的 2 位 Beta 测试人员报告了崩溃。这些是仅有的两个,并且都经历了不同的崩溃。我只是看不出是什么导致了崩溃。我希望如果我 post 在这里,有人可以将我推向正确的方向。
Incident Identifier: FE4706B0-96FB-4F6A-89A3-14965A89D4C9
Beta Identifier: 5AB9E26F-1DF9-4826-B9F4-D51E7529306E
Hardware Model: iPhone7,2
Process: AnApplication [356]
Path: /private/var/mobile/Containers/Bundle/Application/C1F6D736-BB16-4604-965A-5AFED492B02C/We Motovlog.app/We Motovlog
Identifier: com.aWebAddresss.We-Motovlog
Version: 1.0.8 (1.0)
Beta: YES
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-10-01 21:13:21.21 +0100
Launch Time: 2015-10-01 21:12:53.53 +0100
OS Version: iOS 9.0.1 (13A404)
Report Version: 105
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000001000b5224
Triggered by Thread: 0
Global Trace Buffer (reverse chronological seconds):
12.054284 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fdb5800 SSL Handshake DONE
12.240634 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fdb5800 starting SSL negotiation
12.241194 CFNetwork 0x000000018251f760 TCP Conn 0x15fdb5800 complete. fd: 6, err: 0
12.242804 CFNetwork 0x0000000182520c8c TCP Conn 0x15fdb5800 event 1. err: 0
12.329534 CFNetwork 0x0000000182520d64 TCP Conn 0x15fdb5800 started
12.333102 CFNetwork 0x00000001825765a4 Creating default cookie storage with default identifier
12.333102 CFNetwork 0x0000000182576570 Faulting in CFHTTPCookieStorage singleton
12.333103 CFNetwork 0x00000001825c8498 Faulting in NSHTTPCookieStorage singleton
14.578179 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fe98dd0 SSL Handshake DONE
14.769610 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fe98dd0 starting SSL negotiation
14.770747 CFNetwork 0x000000018251f760 TCP Conn 0x15fe98dd0 complete. fd: 6, err: 0
14.772033 CFNetwork 0x0000000182520c8c TCP Conn 0x15fe98dd0 event 1. err: 0
14.854070 CFNetwork 0x0000000182520d64 TCP Conn 0x15fe98dd0 started
15.166164 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fd7e620 SSL Handshake DONE
15.549554 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fd7e620 starting SSL negotiation
15.550051 CFNetwork 0x000000018251f760 TCP Conn 0x15fd7e620 complete. fd: 6, err: 0
15.551401 CFNetwork 0x0000000182520c8c TCP Conn 0x15fd7e620 event 1. err: 0
15.640146 CFNetwork 0x0000000182520d64 TCP Conn 0x15fd7e620 started
27.110642 CFNetwork 0x000000018247d9a4 TCP Conn 0x15fda0c10 SSL Handshake DONE
27.397462 CFNetwork 0x000000018247d8b4 TCP Conn 0x15fda0c10 starting SSL negotiation
27.397862 CFNetwork 0x000000018251f760 TCP Conn 0x15fda0c10 complete. fd: 6, err: 0
27.398833 CFNetwork 0x0000000182520c8c TCP Conn 0x15fda0c10 event 1. err: 0
27.651662 CFNetwork 0x0000000182520d64 TCP Conn 0x15fda0c10 started
Thread 0 name:
Thread 0 Crashed:
0 We Motovlog 0x00000001000b5224 RegisterViewController.insertUserConfirmedIntoDatabase() -> () (RegisterViewController.swift:0)
1 We Motovlog 0x00000001000be268 RegisterViewController.(selectTwitterAccount(RegisterViewController) -> (NSNotification) -> ()).(closure #1).(closure #2) (RegisterViewController.swift:312)
2 UIKit 0x000000018871f19c -[UIAlertController _fireOffActionOnTargetIfValidForAction:] + 100 (UIAlertController.m:1008)
3 UIKit 0x000000018871f934 __85-[UIAlertController _dismissAnimated:triggeringAction:triggeredByPopoverDimmingView:]_block_invoke + 32 (UIAlertController.m:1142)
4 UIKit 0x0000000188617c10 -[UIPresentationController transitionDidFinish:] + 1320 (UIPresentationController.m:294)
5 UIKit 0x000000018861adf8 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 188 (UIPresentationController.m:738)
6 UIKit 0x00000001883fb0a4 -[_UIViewControllerTransitionContext completeTransition:] + 116 (UIViewControllerTransitioning.m:236)
7 UIKit 0x0000000188309828 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 628 (UIView.m:9265)
8 UIKit 0x0000000188309324 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312 (UIView.m:1271)
9 UIKit 0x00000001883091ac -[UIViewAnimationState animationDidStop:finished:] + 108 (UIView.m:1310)
10 QuartzCore 0x0000000187ad9040 CA::Layer::run_animation_callbacks(void*) + 284 (CALayer.mm:6653)
11 libdispatch.dylib 0x0000000198165770 _dispatch_client_callout + 16 (object.m:513)
12 libdispatch.dylib 0x000000019816ae20 _dispatch_main_queue_callback_4CF + 1844 (inline_internal.h:1063)
13 CoreFoundation 0x0000000182d30258 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1615)
14 CoreFoundation 0x0000000182d2e0c0 __CFRunLoopRun + 1628 (CFRunLoop.c:2721)
15 CoreFoundation 0x0000000182c5cdc0 CFRunLoopRunSpecific + 384 (CFRunLoop.c:2814)
16 GraphicsServices 0x000000018ddb0088 GSEventRunModal + 180 (GSEvent.c:2247)
17 UIKit 0x0000000188336f60 UIApplicationMain + 204 (UIApplication.m:3663)
18 We Motovlog 0x00000001000c14c0 main (AppDelegate.swift:19)
19 libdyld.dylib 0x00000001981968b8 start + 4 (start_glue.s:80)
以及它似乎崩溃的代码。
func insertUserConfirmedIntoDatabase(){
let defaults = NSUserDefaults.standardUserDefaults()
defaults.synchronize()
var parameters = ""
if let YouTubeChannelID = defaults.valueForKey("YTchannelID"){
parameters = "YouTubeChannelID=\(YouTubeChannelID)&"
}
if let TwitterID = defaults.valueForKey("chosenTwitterID"){
parameters = parameters.stringByAppendingString("TwitterID=\(TwitterID)&")
}
if let Subscribers = defaults.valueForKey("YTchannelsubscriberCount"){
parameters = parameters.stringByAppendingString("Subscribers=\(Subscribers)&")
}
if let VloggerYouTubeName = defaults.valueForKey("YTchannelName"){
parameters = parameters.stringByAppendingString("VloggerYouTubeName=\(VloggerYouTubeName)&") }
if let VloggersEmail = defaults.valueForKey("usersEmail"){
parameters = parameters.stringByAppendingString("VloggersEmail=\(VloggersEmail)&")
}
if let VloggersUserID = defaults.valueForKey("userGoogleID"){
parameters = parameters.stringByAppendingString("VloggersUserID=\(VloggersUserID)&")
}
if let VloggersCountry = defaults.valueForKey("YTchannelCountry"){
parameters = parameters.stringByAppendingString("VloggersCountry=\(VloggersCountry)&")
}
if let VloggerYouTubeTitle = defaults.valueForKey("YTchannelTitle"){
parameters = parameters.stringByAppendingString("VloggerYouTubeTitle=\(VloggerYouTubeTitle)")
}
let url = NSURL(string: "https://website.com/TMVUKApp/updateProfile.php?\(parameters)")!
print("if let params \(url)")
let request = NSURLRequest(URL: url)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) {
(data, response, error) -> Void in
if error == nil{
self.performSegueWithIdentifier("loggedInSegue", sender: nil)
}
}
task.resume()
}
以及调用
的代码insertUserConfirmedIntoDatabase()
func selectTwitterAccount(notification: NSNotification){
let selectTwitterAccount = UIAlertController(title: "Select the account associated with your youTube persona", message: "", preferredStyle: .Alert)
let receivedDictionary = notification.userInfo!
let arrayOfUsernames = receivedDictionary["usernames"] as! NSArray
NSNotificationCenter.defaultCenter().removeObserver(self, name: "selectTwitterAccountNotification", object: nil)
for username in arrayOfUsernames{
selectTwitterAccount.addAction(UIAlertAction(title: username.username, style: UIAlertActionStyle.Default, handler: { (alertAction) -> Void in
NSUserDefaults.standardUserDefaults().setValue(username.username!, forKey: "chosenTwitterID")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "userhasConfirmedProfile")
NSUserDefaults.standardUserDefaults().synchronize()
self.insertUserConfirmedIntoDatabase()
}))
}
selectTwitterAccount.addAction(UIAlertAction(title: "No twitter", style:UIAlertActionStyle.Destructive, handler: { (UIAlertAction) -> Void in
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "userhasConfirmedProfile")
NSUserDefaults.standardUserDefaults().synchronize()
self.insertUserConfirmedIntoDatabase()
}))
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(selectTwitterAccount, animated: true) { () -> Void in
}
})
}
这是仅发生在 1 位用户身上的崩溃之一。我首先认为这可能是由于某些 NSUserDefaults 未设置,但我已经使用 if let 语句处理了这些,但它仍然崩溃。
一如既往,如果能帮助我调试此问题,我们将不胜感激。 为什么会崩溃?
我的猜测与 session.dataTaskWithRequest() 调用有关。尝试让您的应用程序进入调用该代码之前的状态,然后关闭所有互联网连接并执行任何您想要触发该代码的操作 运行。这将 'simulate' 在使用该应用程序的过程中断开连接。
我最近发现了一些非常相似的问题,用户崩溃并丢失了凭据。日志显示:
1.087128 CFNetwork 0x0000000183f22608 Creating default cookie storage with default identifier
1.087128 CFNetwork 0x0000000183f225d4 Faulting in CFHTTPCookieStorage singleton
1.087128 CFNetwork 0x0000000183f74394 Faulting in NSHTTPCookieStorage singleton
我使用 setValue()
几个月了,几周前就开始崩溃了。将 setValue 更改为 setObject 似乎有所帮助。这两天没问题。等待 AppStore 发布。