我有一个基于Sprite Kit的游戏在iOS8上运行良好,但是在测试iOS 9 beta 5上的应用程序时,它很卡顿且相当慢。
因此,我安装了Xcode 7并使用Swift 2.0重新编译了应用程序,但它仍然非常缓慢和卡顿。
还有其他人遇到这个问题吗?有什么解决办法吗?
不确定您是否已经解决了问题,但我一直在使用Swift2.0和XCode7中遇到了很多卡顿的问题。以下是我所做的:
我看到了巨大的性能提升。不过,我仍在测试中。
听起来你可能正在使用SKLightNode?如果是这样,请尝试从代码中删除所有光节点。我做到了这一点,我的游戏在iOS8中以60fps的速度运行。这只是SpritKit在iOS 9中遇到的问题之一,它已成为苹果论坛上的痛点,并且得到了很少来自苹果官方的反馈。如果SKLightNode不是你游戏中出现的问题,请尝试通过论坛寻找帮助:https://forums.developer.apple.com/welcome。
我曾经遇到过同样的问题。原来是因为我在应用程序中使用了多个SKView。在iOS 8中,我没有注意到明显的问题,但在iOS 9中问题变得更加严重。幸运的是,苹果公司发布了一篇很好的技术文章,概述了在不同视图控制器中使用多个SKView时该怎么做。当我实施这个方案后,性能恢复到了60FPS:
https://developer.apple.com/library/ios/qa/qa1889/_index.html
我在这里发布了一个可能的解决方案: 我的Xcode 7.3编译器经常崩溃,导致构建和编译时间极长
对我来说问题是我在变量名和 .swift
文件名中使用了表情符号。
我建议您尝试在免费版本的AppCode中打开和保存您的项目,这就是我能够通过检查AppCode如何处理相同项目来诊断表情符号问题的方法。
我有同样的问题。我的应用程序使用GLKit,在iOS 8中始终以40fps以上的速度运行,但在iOS 9中下降到不到10fps。
为了解决这个问题,我在xcode 7中开始了一个新项目,并将所有文件从现有项目拖到了新项目中。绝望的时候需要绝望的措施,但现在它在iOS 9中完美运行。
对于大多数人来说,这可能不是一个可行的解决方案,但对我有效。