"语义错误:在Cocos2D v2中重新定义'__ccContentScaleFactor'与不同类型"

use*_*615 21 cocos2d-iphone ios

我开发了一款新游戏,它在我的真实ios设备上运行得非常好,甚至在模拟器上运行但是当我决定将它提交给AppStore时,它在这一行上给出错误.

extern CGFloat  __ccContentScaleFactor;
Run Code Online (Sandbox Code Playgroud)

而错误是

cocos2d/Platforms/iOS/CCDirectorIOS.h:102:16: Redefinition of '__ccContentScaleFactor' with a different type: 'CGFloat' (aka 'double') vs 'float'
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题,我只是将xcode更新为5.1.谢谢

Lea*_*s2D 37

重要更新:


已发布具有64位修复程序的Cocos2D v2.2.

我强烈建议每个cocos2d v2.x开发人员升级到此版本,而不是应用下面的快速修复.在cocos2d v2.0和v2.1中潜伏着许多64位兼容性问题,这些问题可能会在奇怪的错误,视觉故障或更多编译错误中发挥其丑陋的头脑 - 取决于应用程序.

从2015年2月开始,Apple将只接受包含64位二进制文​​件的新应用和应用升级.因此强烈建议在64位设备上使您的代码和cocos2d处于正常工作状态.


仅针对此特定问题进行快速和脏修复:

编辑编译器抱怨的行,更改CGFloat为以下float内容:

extern float  __ccContentScaleFactor;
Run Code Online (Sandbox Code Playgroud)

然而,这表明xcode正在构建arm64切片.对于cocos2d-iphone v2.x,最好从支持的体系结构中禁用/删除arm64,因为Cocos2D v2.1及更早版本与64位设备不完全兼容!

运行Cocos2D v2.1或更早版本的应用程序编译为64位代码并在64位设备(iPhone 5S和更新版本)上运行时,可能会出现奇怪的错误和副作用.iOS模拟器上可能不会出现这些问题.