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
經測試編譯通過。