“语义错误:在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项目中都会遇到这个问题。 谢谢