Для клиента я разработал приложение iOS + Android
, используя Cordova (PhoneGap)
для пользовательского интерфейса. Теперь, как обновление этого приложения, я пытаюсь добавить игру, написанную в Haxe. Первоначально игра была написана для Flash target
, но я обновил ее для работы с целями C++
для Android and iOS
.Запуск Haxe из приложения iOS - ошибка hxRunLibrary()
На Android это было легко интегрировать с помощью приложения Cordova
, используя действия (часть Haxe работает как отдельная операция), но у меня возникают некоторые проблемы с достижением аналогичного результата на iOS.
До сих пор я пытался включить весь сгенерированный код hxcpp
в свой проект (точно так же, как NME создает проект XCode, когда вы делаете «nme build ios»), и я вызываю hxRunLibrary()
из моего кода, когда Я хочу, чтобы игра бежала.
Проблемы заключается в том, что hxRunLibrary()
, кажется, хочет создать свой собственный UIApplication
экземпляр, который терпит неудачу из-за ошибками, поскольку мое главным приложение уже работает экземпляр:
*** Assertion failure in void UIApplicationInstantiateSingleton(Class)(), /SourceCache/UIKit_Sim/UIKit-2380.17/UIApplication.m:2037
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There can only be one UIApplication instance.'
Я думаю, что это могло бы иметь что-то делать с SDL, который Haxe использует для графики. Из того, что я понимаю, SDL нужно запускать из основной функции приложения, что создало конфликт с Cocoa, который также должен запускаться из основной функции.
Есть ли простой способ обойти это? Я просмотрел источники hxcpp, но не смог найти связанный код UIApplication
или любой код ввода для SDL.
Возможно, кто-то может указать мне в правильном направлении. Благодаря!