应用程序在 iOS 8.1.3 上崩溃,无法重现问题

App crashes on iOS 8.1.3, can't reproduce issue

我最近向应用商店提交了一个应用程序(使用swift制作的spritekit游戏),但由于发现其中存在错误而被拒绝。 Apple 的确切回应是:

我们在 iPad 运行 iOS 8.1.3 Wi-Fi 和蜂窝网络上审核时发现了您的应用程序中的一个或多个错误。 具体来说,应用程序加载到空白显示。请参阅随附的屏幕截图以获取更多信息。

我收到了一张空白的屏幕截图(灰色的),但这没有任何帮助。我无法重现该问题,因为该应用程序在我的 iPad (8.1.3) 上运行良好。有谁知道这可能是什么?我测试了发送给苹果的同一个版本。

这是我的视图控制器代码:

    super.viewDidLoad()

    let scene:SKScene = GameScene()

        // Configure the view.
        let skView = self.view as! SKView
        skView.showsFPS = false
        skView.showsNodeCount = false

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true

        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .ResizeFill
        scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
        scene.size = skView.bounds.size

        skView.presentScene(scene)

}

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> Int {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
    } else {
        return Int(UIInterfaceOrientationMask.All.rawValue)
    }
}

这是游戏第一个场景 (didMoveToView) 中的一些代码:

    authenticateLocalPlayer()

    //add background
    self.addChild(backgroundpic)

    //retrieve ad
    //loadAds()

    //get high score
    var accessPlayScene = PlayScene()
    var gameSceneHighScore = accessPlayScene.returnHighScore()
    //set background color
    backgroundColor = SKColor.blackColor()

    //add leaderboardbutton
    leaderBoardButton.position = CGPointMake((CGRectGetMidX(self.frame)), ((-1) * self.frame.size.height*0.27))
    self.addChild(leaderBoardButton)

    //add play button
    self.tutorialButton.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMaxY(self.frame)*(-0.05))
    self.addChild(self.tutorialButton)

    //add high score label
    gameSceneHighScoreLabel.fontColor = UIColor.redColor()
    gameSceneHighScoreLabel.position = CGPointMake(CGRectGetMidX(self.frame), (CGRectGetMaxY(self.frame)*0.75))
    gameSceneHighScoreLabel.text = "High Score: " + String(gameSceneHighScore)
    self.addChild(gameSceneHighScoreLabel)

    //add intro text
    self.appName.position = CGPointMake(CGRectGetMidX(self.frame),(CGRectGetMaxY(self.frame)*0.90))
    self.addChild(appName)

    //add tutorial button
    PLAYBUTTON.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame)*0.45)
    self.addChild(PLAYBUTTON)
}

感谢您的帮助

只是一个猜测:视图的加载是否完全取决于 uikeyboard 是否可见? Apple 使用模拟器进行测试,如果他们没有启用软件键盘,则可能不会触发您的视图显示。在实际设备上,这绝不是问题。

我联系了应用审核,他们基本上说该应用在 iPad 和 iPhone 上运行良好。我不知道他们最初为什么或如何遇到这个问题。