ios - 空气原生扩展 : iOS packaged dependencies (Firebase)

标签 ios flash apache-flex air ane

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

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

令人沮丧的是,我什至成功打包了 .ane 文件。但是,当我将其包含在 Adob​​e Animate/Flash 中的应用程序构建中时,在发布 ipa 时收到一条看似无用的错误消息:

Adobe Animate输入无效”

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

我正在使用的 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 上找到更多指南请随意从 wiki 页面上找到的信息中获取灵感。

关于ios - 空气原生扩展 : iOS packaged dependencies (Firebase),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38714924/

相关文章:

ios - 如何从另一个 View Controller 访问按钮?

html - 为什么特定图像不会显示在 iPad 4 上的 Safari iOS 上?

apache - 为 Apache Flex Compiler 做出贡献会改善 Adob​​e Flex Compiler 吗?

java - 如何捕获并保存 Flash 视频的实时直播?

ios - 尝试创建委托(delegate)时获取 nil

ios - 在 table 外敲击时关闭键盘

java - 希望直接扫描文档以上传到网页

.net - 有了这个技术,是否可以在Flash中编译运行silverlight IL?

actionscript-3 - ActionScript 3 缩放和滚动问题

flash - 如何反汇编 ABC 字节码?