繁体   English   中英

Air Native Extension:iOS打包依赖项(Firebase)

[英]Air Native Extension: iOS packaged dependencies (Firebase)

我在构建一个用于iOS应用程序的ANE时遇到了麻烦。 我已经能够创建一个记录字符串的基本ANE。 但是,当我尝试使用它打包框架(特别是Firebase核心框架)时,我遇到了麻烦。

我已经成功构建了iOS静态库(.a文件),确保框架是链接的。 并成功编译了扩展的ActionScript端(iOS和默认实现)。

令人沮丧的是,我甚至设法成功打包.ane文件。 但是,当我将它包含在Adobe Animate / Flash中的应用程序构建中时,在发布ipa时出现看似无用的错误消息:

Adobe Animate输入无效”

似乎我打包框架的方式有问题,因为将它们从文件中删除会导致应用程序无问题地发布。

我正在使用的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>

我的包装文件夹结构是:

- 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

而我用来创建的命令是(添加了新行以提高可读性):

$ 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上找到更多guidlines https://github.com/myflashlab/Firebase-ANE/wiki/A.3.-Add-the-SDK随时可以从您在维基页面上找到的信息中获得灵感。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM