LoginSignup
2
2

More than 5 years have passed since last update.

cocos2d-x 2.2.3 から 2.2.6 へのバージョンアップ

Last updated at Posted at 2015-02-26

アップルにiOSアプリを申請するためにはアプリを64ビットにすることが必要です。
cocos2d-xの古いバージョンでは64ビットに対応していないので2.2.6に対応する必要があります。

ということで対応内容を記事にしました。



①cocos2d-x2.2.6を作業ディレクリに展開します。
私は展開したcocos2d-xの中にprojectsというプロジェクトフォルダを作って作業していますので、今回もその中にprojectsを作成しました。

スクリーンショット 2015-02-26 18.56.47.png




②旧バージョンのプロジェクトを新バージョンのフォルダへコピーします。スクリーンショット 2015-02-26 19.02.25.png




③iOSの対応です。
③-①Xcodeのプロジェクトに64bit対応の設定をします。
スクリーンショット 2015-02-26 20.01.09.png




③-②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はエラーがでなくなったと思います。
スクリーンショット 2015-02-26 19.41.21.png
スクリーンショット 2015-02-26 19.41.49.png




④androidの対応です。
Eclipseで設定したCOCOS2DXの値を2.2.6のパスに修正します。
画像では日本語化していますが、していない人は『環境設定 > General > Workspace > Linked Resources』から変更できます。
スクリーンショット 2015-02-26 19.49.01.png

以上が対応内容です。
android はビルドを試してないですが、問題が出た場合は追記します。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2