У меня есть игра, которую я создал в cocos2d-x 3.15 на моем компьютере, и она отлично работает. Затем я переместил свой проект на Mac, переключил платформу на iOS и попытался собрать ее для iOS 9.0 и для устройства iphone XR, теперь я получаю сообщение об ошибке «Неопределенные символы для архитектуры arm64» в течение пары дней. журнал ошибок таков:
"_UIApplicationMain", referenced from:
_main in main.o
"_OBJC_METACLASS_$_UIViewController", referenced from:
_OBJC_METACLASS_$_RootViewController in RootViewController.o
"_OBJC_CLASS_$_UIViewController", referenced from:
_OBJC_CLASS_$_RootViewController in RootViewController.o
"CocosDenshion::SimpleAudioEngine::getInstance()", referenced from:
TRMusicSound::isMusicPlay() in TRMusicSound.o
TRMusicSound::loadingGameMusic() in TRMusicSound.o
TRMusicSound::loadingGameSound(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in TRMusicSound.o
TRMusicSound::setMusicStutas(bool) in TRMusicSound.o
TRMusicSound::playHeadMusic() in TRMusicSound.o
TRMusicSound::playGameMusic() in TRMusicSound.o
TRMusicSound::playGetReadySound() in TRMusicSound.o
...
"cocos2d::Node::init()", referenced from:
vtable for BaseNode in BaseNode.o
"cocos2d::ui::Widget::addTouchEventListener(std::__1::function<void (cocos2d::Ref*, cocos2d::ui::Widget::TouchEventType)> const&)", referenced from:
BaseNode::resetWidgetTouchEvent(char const*) in BaseNode.o
"cocos2d::Vec2::ZERO", referenced from:
BaseNode::init(cocos2d::Node*, bool) in BaseNode.o
BaseLayer::LoadUIFile(char const*, bool) in BaseLayer.o
"cocos2d::CSLoader::createNode(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
BaseNode::create(char const*, bool) in BaseNode.o
"cocos2d::ui::Button::loadTextureDisabled(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cocos2d::ui::Widget::TextureResType)", referenced from:
UIGameLayer::updateQetButton() in UIGameLayer.o
"cocos2d::ui::LoadingBar::setPercent(float)", referenced from:
UIGameLayer::updateRoleBlood() in UIGameLayer.o
UIGameLayer::updateRoleMagic() in UIGameLayer.o
UIGameLayer::setBossBlood(float) in UIGameLayer.o
UIGameLayer::setBossBlood(float)::$_1::operator()() const in UIGameLayer.o
"cocos2d::ProgressTimer::create(cocos2d::Sprite*)", referenced from:
UIGameLayer::initBossCD() in UIGameLayer.o
"cocos2d::ProgressTimer::setType(cocos2d::ProgressTimer::Type)", referenced from:
UIGameLayer::initBossCD() in UIGameLayer.o
"cocos2d::ui::PageView::setCurrentPageIndex(long)", referenced from:
UISelectScene::updateRolePage() in UISelectScene.o
"cocos2d::ui::Button::loadTexturePressed(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cocos2d::ui::Widget::TextureResType)", referenced from:
UISelectScene::updateButtonStutas(cocos2d::Node*, int) in UISelectScene.o
UIGameLayer::initHead() in UIGameLayer.o
UIGameLayer::updateQetButton() in UIGameLayer.o
"typeinfo for cocos2d::ui::TextBMFont", referenced from:
UISelectScene::updateCoins() in UISelectScene.o
UIGameLayer::initPropCount() in UIGameLayer.o
UIGameLayer::initCombo() in UIGameLayer.o
UIGameLayer::updateDistance() in UIGameLayer.o
UIShopLayer::updateCoins() in UIShopLayer.o
UIResultLayer::initLayerUI() in UIResultLayer.o
.....
Я искал везде и пробовал все, что мог, но все равно не повезло. До сих пор я пробовал:
- Изменение архитектуры (armv7 и arm64 и стандартная архитектура)
- Изменение "Только для активной архитектуры" на no
- Изменение "удаления кода" на no
- Добавление $ (наследуется) к "другим флагам компоновщика"
- Добавление фреймворков "Security" и "SystemConfiguration" для этапов сборки
- Отключение «битового кода» и включение «Сохранять частные внешние символы»