2016-08-02 40 views
3

我在構建ANE以用於iOS應用時遇到問題。我已經能夠創建一個記錄字符串的基本ANE。但是,當我嘗試打包框架(特別是Firebase核心框架)時,我遇到了麻煩。Air原生擴展:iOS打包的依賴關係(Firebase)

我已經成功構建了iOS靜態庫(.a文件),確保框架已鏈接。並且成功編譯了擴展的ActionScript端(iOS和默認實現)。

令人沮喪的是,我甚至設法成功打包了一個.ane文件。然而,當我將其包含在建立我在Adobe動畫/ Flash應用程序,我得到發佈IPA當一個看似無用的錯誤消息:

的Adobe動畫無效輸入」

它好像有我打包框架的方式出了問題,因爲將它們從平臺中移除會導致應用程序發佈而不出問題。

我使用的是iOS的platform.xml文件具有內容:

<?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> 

我對包裝ANE文件夾結構是:

- 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 

而且我用來創建命令該ANE是(增加了可讀性新線):

$ 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/ . 

任何人都可以看到什麼我做錯了嗎? Adobe的教程和文檔在封裝第三方依賴性方面相當差,我一直無法找到有關如何執行此操作的明確示例。

我試過使用Flex sdk版本4.6.0(附帶Flash Builder 4.7)和4.15.0(直接從Apache網站下載)。使用Air sdk版本22.0.0.153。

回答

1

您需要改變您在iOS上嵌入.framework文件的方式。您可以將它們複製到「yourAirSDK \ lib \ aot \ stub」文件夾中,而不是使用平臺依賴性將它們嵌入到.ane文件中。這種替代解決方案的好處是你的.ane文件的大小不會太大。

我們已經構建了Firebase ANE,如果您願意,您可以在我們的Wiki https://github.com/myflashlab/Firebase-ANE/wiki/A.3.-Add-the-SDK上找到更多指導,隨時獲取您可能在維基頁面上找到的信息。