cocos2d-x 2.2.3 から 2.2.6 へのバージョンアップ
アップルにiOSアプリを申請するためにはアプリを64ビットにすることが必要です。
cocos2d-xの古いバージョンでは64ビットに対応していないので2.2.6に対応する必要があります。
ということで対応内容を記事にしました。
①cocos2d-x2.2.6を作業ディレクリに展開します。
私は展開したcocos2d-xの中にprojectsというプロジェクトフォルダを作って作業していますので、今回もその中にprojectsを作成しました。
②旧バージョンのプロジェクトを新バージョンのフォルダへコピーします。
③iOSの対応です。
③-①Xcodeのプロジェクトに64bit対応の設定をします。
③-②Xcodeでビルドするとリンクエラーが発生するのでエラーを修正します。
Undefined symbols for architecture i386:
"cocostudio::timeline::TimelineActionData::create(int)", referenced from:
cocos2d::extension::WidgetReader::setPropsFromJsonDictionary(cocos2d::ui::Widget*, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&) in WidgetReader.o
"cocos2d::extension::CocoLoader::ReadCocoBinBuff(char*)", referenced from:
cocos2d::extension::CCDataReaderHelper::addDataFromBinaryCache(char const*, cocos2d::extension::_DataInfo*) in CCDataReaderHelper.o
cocos2d::extension::CCComRender::serialize(void*) in CCComRender.o
cocos2d::extension::GUIReader::widgetFromBinaryFile(char const*) in GUIReader.o
cocos2d::extension::SceneReader::createNodeWithSceneFile(char const*, cocos2d::extension::AttachComponentType) in SceneReader.o
"cocos2d::extension::CocoLoader::CocoLoader()", referenced from:
cocos2d::extension::CCDataReaderHelper::addDataFromBinaryCache(char const*, cocos2d::extension::_DataInfo*) in CCDataReaderHelper.o
cocos2d::extension::CCComRender::serialize(void*) in CCComRender.o
cocos2d::extension::GUIReader::widgetFromBinaryFile(char const*) in GUIReader.o
cocos2d::extension::SceneReader::createNodeWithSceneFile(char const*, cocos2d::extension::AttachComponentType) in SceneReader.o
"cocos2d::extension::CocoLoader::~CocoLoader()", referenced from:
cocos2d::extension::CCDataReaderHelper::addDataFromBinaryCache(char const*, cocos2d::extension::_DataInfo*) in CCDataReaderHelper.o
cocos2d::extension::CCComRender::serialize(void*) in CCComRender.o
cocos2d::extension::GUIReader::widgetFromBinaryFile(char const*) in GUIReader.o
cocos2d::extension::SceneReader::createNodeWithSceneFile(char const*, cocos2d::extension::AttachComponentType) in SceneReader.o
"cocos2d::extension::stExpCocoNode::GetChildNum()", referenced from:
cocos2d::extension::LayoutReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LayoutReader.o
cocos2d::extension::TriggerObj::serialize(cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in TriggerObj.o
cocos2d::extension::LoadingBarReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LoadingBarReader.o
cocos2d::extension::ActionManager::initWithBinary(char const*, cocos2d::CCObject*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in CCActionManager.o
cocos2d::extension::ButtonReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ButtonReader.o
cocos2d::extension::LabelAtlasReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LabelAtlasReader.o
cocos2d::extension::ImageViewReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ImageViewReader.o
...
"cocos2d::extension::stExpCocoNode::GetChildArray(cocos2d::extension::CocoLoader*)", referenced from:
cocos2d::extension::LayoutReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LayoutReader.o
cocos2d::extension::TriggerObj::serialize(cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in TriggerObj.o
cocos2d::extension::LoadingBarReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LoadingBarReader.o
cocos2d::extension::ActionManager::initWithBinary(char const*, cocos2d::CCObject*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in CCActionManager.o
cocos2d::extension::ButtonReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ButtonReader.o
cocos2d::extension::LabelAtlasReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LabelAtlasReader.o
cocos2d::extension::ImageViewReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ImageViewReader.o
...
"cocos2d::extension::stExpCocoNode::GetName(cocos2d::extension::CocoLoader*)", referenced from:
cocos2d::extension::LayoutReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LayoutReader.o
cocos2d::extension::TriggerObj::serialize(cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in TriggerObj.o
cocos2d::extension::LoadingBarReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LoadingBarReader.o
cocos2d::extension::ActionManager::initWithBinary(char const*, cocos2d::CCObject*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in CCActionManager.o
cocos2d::extension::ButtonReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ButtonReader.o
cocos2d::extension::LabelAtlasReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LabelAtlasReader.o
cocos2d::extension::ImageViewReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ImageViewReader.o
...
"cocos2d::extension::stExpCocoNode::GetType(cocos2d::extension::CocoLoader*)", referenced from:
cocos2d::extension::TriggerMng::buildJson(rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> >&, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in TriggerMng.o
cocos2d::extension::CCDataReaderHelper::addDataFromBinaryCache(char const*, cocos2d::extension::_DataInfo*) in CCDataReaderHelper.o
cocos2d::extension::CCDataReaderHelper::decodeNode(cocos2d::extension::CCBaseData*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*, cocos2d::extension::_DataInfo*) in CCDataReaderHelper.o
cocos2d::extension::CCComRender::serialize(void*) in CCComRender.o
cocos2d::extension::GUIReader::widgetFromBinaryFile(char const*) in GUIReader.o
cocos2d::extension::WidgetPropertiesReader0300::createWidgetFromBinary(cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*, char const*) in GUIReader.o
cocos2d::extension::WidgetPropertiesReader0300::widgetFromBinary(cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in GUIReader.o
...
"cocos2d::extension::stExpCocoNode::GetValue(cocos2d::extension::CocoLoader*)", referenced from:
cocos2d::extension::LayoutReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LayoutReader.o
cocos2d::extension::TriggerObj::serialize(cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in TriggerObj.o
cocos2d::extension::LoadingBarReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LoadingBarReader.o
cocos2d::extension::ButtonReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ButtonReader.o
cocos2d::extension::LabelAtlasReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in LabelAtlasReader.o
cocos2d::extension::ImageViewReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ImageViewReader.o
cocos2d::extension::ListViewReader::setPropsFromBinary(cocos2d::ui::Widget*, cocos2d::extension::CocoLoader*, cocos2d::extension::stExpCocoNode*) in ListViewReader.o
...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
cocos2d-xがバージョンアップしたときにファイルが追加されたため、エラーが発生しています。
ActionTimelineフォルダとCocoLoader.cpp/.hをプロジェクトに追加します。
これでXCodeはエラーがでなくなったと思います。
④androidの対応です。
Eclipseで設定したCOCOS2DXの値を2.2.6のパスに修正します。
画像では日本語化していますが、していない人は『環境設定 > General > Workspace > Linked Resources』から変更できます。
以上が対応内容です。
android はビルドを試してないですが、問題が出た場合は追記します。
Author And Source
この問題について(cocos2d-x 2.2.3 から 2.2.6 へのバージョンアップ), 我々は、より多くの情報をここで見つけました https://qiita.com/kudou_slott/items/c431042e345d3cfb6d9a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .