Для клиента я разработал приложение iOS + Android
, используя Cordova (PhoneGap)
для пользовательского интерфейса. Теперь, как обновление этого приложения, я пытаюсь добавить игру, написанную в Haxe. Первоначально игра была написана для Flash target
, но я обновил ее для работы с целями C++
для Android and iOS
.
В 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.
Возможно, кто-то может указать мне в правильном направлении. Спасибо!