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.