“语义错误:在Cocos2D v2中重新定义”__ccContentScaleFactor“
我开发了一款新游戏,它在我的真实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与64位修复已经发布。
我强烈build议每个cocos2d v2.x开发人员升级到此版本,而不是应用下面的快速修复。 在cocos2d v2.0和v2.1中潜伏着许多64位兼容性问题,这些问题可能会使他们在奇怪的错误,视觉故障或更多编译错误中变得丑陋 – 这取决于应用程序。
从2015年2月开始,苹果将只接受新的应用程序和应用程序升级,其中包括64位二进制文件。 所以强烈build议您在64位设备上将代码和cocos2d设置为适当的工作状态。
快速和肮脏的修复只为这个特定的问题:
编辑编译器所抱怨的行,将CGFloat
更改为float
,以使其显示如下:
extern float __ccContentScaleFactor;
但是这表明xcode正在构buildarm64切片。 对于cocos2d-iphone v2.x,最好从支持的体系结构中禁用/删除arm64,因为Cocos2D v2.1及更早版本与64位设备不完全兼容!
运行Cocos2D v2.1或更早版本的应用程序编译为64位代码并在64位设备(iPhone 5S和更新版本)上运行时,可能会出现奇怪的错误和副作用。 这些问题可能不会发生在iOS模拟器上。
现在开发人员正在为这个问题寻找新的解决scheme。 因为苹果说从2015年2月份开始,ARM64将是强制性的。 所以你可以通过改变来解决这个问题:
CGFloat
至
float
每一个你在coco2d项目中都会遇到这个问题。 谢谢