简体   繁体   中英

How to read this ios symbolicated crash log?

Apple rejected an APP's new version and sent me back crash log, it's hard for me to find the problem even the crash log has been symbolicated in Xcode. From the following, I guess that something wrong in func getGameCenterScore at line 246? Does it tell more problems?

BTW, before calling the func GameCenterScore(), GKLocalPlayer.localPlayer().authenticated is checked, but network is not checked. I have to think it problem here. Any suggestion?

Thx.

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

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   xoxo                              0x0000000100054ef4 xoxo.ViewController.(getGameCenterScore (xoxo.ViewController) -> () -> Swift.Int).(closure #1) (ViewController.swift:246)
1   xoxo                              0x00000001000546b0 partial apply forwarder for reabstraction thunk helper from @callee_owned (@in ([Swift.AnyObject]!, ObjectiveC.NSError!)) -> (@out ()) to @callee_owned (@owned [Swift.AnyObject]!, @owned ObjectiveC.NSError!) -> (@unowned ()) with unmangled suffix "315" (ViewController.swift:0)
2   xoxo                              0x0000000100055110 reabstraction thunk helper from @callee_owned (@owned [Swift.AnyObject]!, @owned ObjectiveC.NSError!) -> (@unowned ()) to @callee_unowned @objc_block (@unowned ObjectiveC.NSArray!, @unowned ObjectiveC.NSError!) -> (@unowned ()) (ViewController.swift:0)
3   GameCenterFoundation              0x000000018e9de3a0 0x18e964000 + 500640
4   libdispatch.dylib                 0x0000000197841990 0x197840000 + 6544
5   libdispatch.dylib                 0x0000000197841950 0x197840000 + 6480
6   libdispatch.dylib                 0x0000000197846208 0x197840000 + 25096
7   CoreFoundation                    0x0000000185a877f4 0x1859a8000 + 915444
8   CoreFoundation                    0x0000000185a8589c 0x1859a8000 + 907420
9   CoreFoundation                    0x00000001859b12d0 0x1859a8000 + 37584
10  GraphicsServices                  0x000000018f09f6f8 0x18f094000 + 46840
11  UIKit                             0x000000018a576fa8 0x18a500000 + 487336
12  xoxo                              0x00000001000636c0 main (AppDelegate.swift:12)
13  libdyld.dylib                     0x000000019786ea04 0x19786c000 + 10756

func getGameCenterScore(){
    var gameCenterScore = 0
    let leaderBoardRequest = GKLeaderboard()
    leaderBoardRequest.identifier = "XXXXXXXXXXXXX"

    leaderBoardRequest.loadScoresWithCompletionHandler { (scores, error) -> Void in
        if (error != nil) {
            println("Error: \(error!.localizedDescription)")
        } else if (scores != nil) {
            let localPlayerScore = leaderBoardRequest.localPlayerScore
            gameCenterScore = Int(localPlayerScore.value)

            if self.saveData.stringForKey("topScore") == nil {
                self.saveData.setValue(gameCenterScore, forKey: "topScore")
                self.topScoreLabel.text = "\(gameCenterScore)"
            }else{
                if gameCenterScore > self.saveData.integerForKey("topScore"){
                    self.saveData.setValue(gameCenterScore, forKey: "topScore")
                    self.topScoreLabel.text = "\(gameCenterScore)" // line 246
                }
            }

        }
    }
}

Just went through he same thing. A binary rejection for my uploaded app. Finally, got it accepted. I found the line number much like you did. (I used textWrangler and compared the symbolicated text to the original crash. And there was only one line that it could have been. Much like your 216.) Lines listed as swift:0 are after the crash causing line.

To Solve or eradicate the problem: 1) I found ghosts can linger in my swift code. Clean and rebuild. Try moving the code around. 2) Note that the line where the crash is listed as being may be off by a few lines. The line they listed for my app was a comment. The error was the code above and that code looked okay. I solved it by rewriting in a different way. 3) Look over your code very carefully.

if gameCenterScore > self.saveData.integerForKey("topScore"){`enter code here`

Would this crash if your gameCenterScore == topScore?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM