首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空中本机扩展: iOS打包依赖项(Firebase)

空中本机扩展: iOS打包依赖项(Firebase)
EN

Stack Overflow用户
提问于 2016-08-02 08:02:29
回答 1查看 635关注 0票数 3

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

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

令人沮丧的是,我甚至成功地打包了一个.ane文件。然而,当我将它包含在Adobe动画/Flash中的应用程序构建中时,当发布ipa时,我会收到一条看似无用的错误消息:

"Adobe动画无效输入“

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

我使用的iOS platform.xml文件的内容如下:

代码语言:javascript
复制
<?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的文件夹结构是:

代码语言:javascript
复制
- 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的命令是(为可读性添加的新行):

代码语言:javascript
复制
$ 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版本4.6.0 (附带FlashBuilder4.7)和4.15.0 (直接从Apache站点下载)。使用Air版本22.0.0.153。

EN

回答 1

Stack Overflow用户

发布于 2016-08-05 10:46:11

您需要改变将.framework文件嵌入到iOS上的方式。与其使用平台依赖关系将它们嵌入到.ane文件中,不如将它们复制到"yourAirSDK\lib\aot\stub“文件夹中。这个替代解决方案的好处是,您的.ane文件大小不会变得太大。

我们已经构建了Firebase ANE,如果您愿意的话,您可以在我们的wiki https://github.com/myflashlab/Firebase-ANE/wiki/A.3.-Add-the-SDK上找到更多的指导方针,您可以自由地从wiki页面上找到您可能找到的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38714924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档