Air原生扩展:iOS打包的依赖关系(Firebase)

问题描述:

我在构建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。

您需要改变您在iOS上嵌入.framework文件的方式。您可以将它们复制到“yourAirSDK \ lib \ aot \ stub”文件夹中,而不是使用平台依赖性将它们嵌入到.ane文件中。这种替代解决方案的好处是你的.ane文件的大小不会太大。

我们已经构建了Firebase ANE,如果您愿意,您可以在我们的Wiki https://github.com/myflashlab/Firebase-ANE/wiki/A.3.-Add-the-SDK上找到更多指导,随时获取您可能在维基页面上找到的信息。

https://github.com/monumentichb/Firebase-Admob-ANE 下载admob.ane然后将其添加到flex项目。使用as3调用函数 。 根本不需要oc。