我开发了一款新游戏,它在我的真实 iOS 设备甚至模拟器上运行得非常好,但是当我决定将它提交到 AppStore 时,它在这一行出现错误。
extern CGFloat __ccContentScaleFactor;
错误是
cocos2d/Platforms/iOS/CCDirectorIOS.h:102:16: Redefinition of '__ccContentScaleFactor' with a different type: 'CGFloat' (aka 'double') vs 'float'
任何人都可以帮我解决这个问题我只是将 xcode 更新到 5.1。谢谢
最佳答案
重要更新:
Cocos2D v2.2 with 64-Bit fixes has been released.
我强烈建议每个 cocos2d v2.x 开发人员升级到这个版本,而不是应用下面的快速修复。 cocos2d v2.0 和 v2.1 中潜伏着许多 64 位兼容性问题,这些问题可能会在奇怪的错误、视觉故障或更多编译错误中露出难看的头 - 取决于应用程序。
从 2015 年 2 月开始,Apple 将只接受包含 64 位二进制文件的新应用和应用升级。因此强烈建议让您的代码和 cocos2d 在 64 位设备上正常工作。
仅针对此特定问题快速修复:
编辑编译器提示的行,将 CGFloat
更改为 float
以便它显示为:
extern float __ccContentScaleFactor;
然而,这表明 xcode 正在构建 arm64 slice。对于 cocos2d-iphone v2.x,最好从支持的架构中禁用/删除 arm64,因为 Cocos2D v2.1 及更早版本与 64 位设备不完全兼容!
运行编译为 64 位代码的 Cocos2D v2.1 或更早版本的应用程序并在 64 位设备(iPhone 5S 和更新版本)上运行时,可能会出现奇怪的错误和副作用。这些问题可能不会出现在 iOS 模拟器上。
关于ios - Cocos2D v2 中的 "Semantic error: Redefinition of ' __ccContentScaleFactor ' with a different type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335655/