应用程序在 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 上运行良好。我不知道他们最初为什么或如何遇到这个问题。
我最近向应用商店提交了一个应用程序(使用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 上运行良好。我不知道他们最初为什么或如何遇到这个问题。