2016-08-02 107 views
3

Ich habe Probleme beim Erstellen eines ANE für die Verwendung mit einer iOS-App. Ich konnte einen einfachen ANE erstellen, der eine Zeichenfolge protokolliert. Es ist jedoch, wenn ich versuche, Frameworks (speziell die Firebase-Kern-Frameworks) damit zu verpacken, dass ich in Schwierigkeiten komme.Air Native Extension: iOS-Paketabhängigkeiten (Firebase)

Ich habe die statische iOS-Bibliothek (.a-Datei) erfolgreich erstellt, um sicherzustellen, dass die Frameworks verknüpft sind. Und die ActionScript-Seite der Erweiterung wurde erfolgreich kompiliert (sowohl die iOS- als auch die Standardimplementierung).

Was frustrierend ist, ist, dass es mir sogar gelungen ist, eine .ane-Datei zu packen. Jedoch, wenn ich es in der Build für meine Anwendung in Adobe Animate/Flash enthalten, erhalte ich eine scheinbar nutzlose Fehlermeldung bei der Veröffentlichung der IPV:

Adobe Animate Invalid Input“

Es scheint, als ob es Etwas stimmt nicht mit der Art und Weise, wie ich die Frameworks paketiere, da das Entfernen der Apps aus der App dazu führt, dass die App ohne Probleme veröffentlicht wird.

Die iOS platform.xml Datei hat ich bin mit dem Inhalt:

<?xml version="1.0" encoding="utf-8" ?> 
<platform xmlns="http://ns.adobe.com/air/extension/3.5"> 
    <sdkVersion>9.3.0</sdkVersion> 
    <linkerOptions> 
     <option>-ios_version_min 7.0</option> 
     <option>-rpath @executable_path/Frameworks</option> 
    </linkerOptions> 
    <packagedDependencies> 
     <packagedDependency>Frameworks/FirebaseAnalytics.framework</packagedDependency> 
     <packagedDependency>Frameworks/FirebaseInstanceID.framework</packagedDependency> 
     <packagedDependency>Frameworks/GoogleInterchangeUtilities.framework</packagedDependency> 
     <packagedDependency>Frameworks/GoogleSymbolUtilities.framework</packagedDependency> 
     <packagedDependency>Frameworks/GoogleUtilities.framework</packagedDependency> 
    </packagedDependencies> 
</platform> 

für meine Ordnerstruktur der ane Verpackung ist:

- extension.xml 
- platform.xml 
- Extension.swc 
+ default 
    - library.swf 
+ ios 
    - library.swf 
    - libExtension.a 
+ Frameworks 
    - FirebaseAnalytics.framework 
    - FirebaseInstanceID.framework 
    - GoogleInterchangeUtilities.framework 
    - GoogleSymbolUtilities.framework 
    - GoogleUtilities.framework 

Und der Befehl, den ich erstellen bin mit die ane ist (neue Linien zur besseren Lesbarkeit hinzugefügt):

$ adt -package -target ane Extension.ane extension.xml -swc Extension.swc 
    -platform iPhone-ARM -platformoptions platform.xml 
    Frameworks/FirebaseAnalytics.framework 
    Frameworks/FirebaseInstanceID.framework 
    Frameworks/GoogleInterchangeUtilities.framework 
    Frameworks/GoogleSymbolUtilities.framework 
    Frameworks/GoogleUtilities.framework 
    -C ios/ . -platform default -C default/ . 

jemand etwas sehen Kann ich hier falsch mache? Die Tutorials und die Dokumentation von Adobe sind ziemlich schlecht in Bezug auf die Abhängigkeiten von Drittanbietern, und ich konnte keine klaren Beispiele dafür finden.

Ich habe versucht, Flex sdk Versionen 4.6.0 (kommt mit Flash Builder 4.7) und 4.15.0 (direkt von der Apache-Website heruntergeladen). Verwenden von Air sdk Version 22.0.0.153.

Antwort

1

Sie müssen die Art ändern, in der Sie eingebettete .framework-Dateien unter iOS betrachten. Anstatt zu versuchen, sie mithilfe von Plattformabhängigkeiten in Ihre .ane-Datei einzubetten, können Sie sie im Ordner "yourAirSDK \ lib \ aot \ stub" kopieren. Das Gute an dieser alternativen Lösung ist, dass Ihre .ane-Dateigröße nicht zu groß wird.

Wir haben den Firebase ANE bereits gebaut und wenn Sie möchten, finden Sie weitere Anleitungen hier in unserem Wiki https://github.com/myflashlab/Firebase-ANE/wiki/A.3.-Add-the-SDK Sie können sich von den Informationen auf den Wiki-Seiten inspirieren lassen.