Per un client ho sviluppato un'applicazione iOS + Android
utilizzando Cordova (PhoneGap)
per l'interfaccia utente. Ora, come aggiornamento di questa app, sto tentando di aggiungere un gioco che è stato scritto in Haxe. Originariamente il gioco è stato scritto per lo Flash target
, ma l'ho aggiornato per funzionare con gli obiettivi C++
per Android and iOS
.Esecuzione di Haxe dall'app iOS - hxRunLibrary() errore
Su Android è stato facile integrare questo con i Cordova
attività app utilizzando (la parte Haxe viene eseguito come un'attività separata), ma sto avendo qualche difficoltà a raggiungere un risultato simile su iOS.
Finora ho cercato di includere tutto il codice generato da hxcpp
nel mio progetto (nello stesso modo in cui NME imposta il progetto XCode quando si esegue "nme build ios") e sto chiamando hxRunLibrary()
dal mio codice quando Voglio che il gioco funzioni.
Il problema è che hxRunLibrary()
sembra voler creare un proprio UIApplication
esempio, che non riesce con il seguente errore, dal momento che la mia applicazione principale è già in esecuzione un'istanza:
*** 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.'
penso che potrebbe avere qualcosa a fare con SDL, che Haxe utilizza per la grafica. Da quanto ho capito SDL deve essere eseguito dalla funzione principale dell'app, che ha creato un conflitto con Cocoa che deve anche essere eseguito dalla funzione principale.
C'è un modo semplice per aggirare questo? Ho cercato nelle sorgenti hxcpp, ma non sono riuscito a trovare il codice relativo UIApplication
o alcun codice di accesso per SDL.
Forse qualcuno potrebbe indicarmi la giusta direzione. Grazie!