2015年2月1日后新提交的应用必须要支持64位架构。
我所使用的是cocos2d-x V2.0版本,而且源码有部分代码是修改过的。好在cocos2d-x官方已经放出了一个支持64位的2.2.6版本,可以做为参考。
在修改之前,有必要了解一下32位与64位的一些区别,网上能搜索到的资料有很多,这里简单列一下(尽量通过图表的方式)
I代表int、L代码Long、P代表Pointer
通过上图,大家很容易就发现主要的不同点在long与pointer上
废话不多说。先来看一下哪些需要修改的。
支持64bit 关于Xcode “Build Setting” 设置
1. Xcode “Build Setting”中的Architectures参数必须设置Standard architectures (armv7,arm64).
2. Xcode “Build Setting”中的Valid Architectures 包含armv6 armv7 arm64
替换项目中用到的库文件
我这边以我项目为准说明:替换
替换cocos2dx/platform/third_party/ios/curl 目录下相关.h文件
替换libwebsockets/ios/include 目录下头.h文件
替换libcurl.a、libwebp.a、libwebsockets.a
修复td string错误
第一、Build Settings-->Apple LLVM 8.1 - Language - C++ --> C++ Standard Library,设置为:libstdc++(GNU C++ standard library)
然后Clean工程,然后重新Build,看是否可以成功。
第二、如果上述设置仍旧不能解决你的问题,你还可以尝试Build Phases --> Link Binary With Libraries里面增加库:libstdc++.dylib
经测试编译通过。