适用于 iOS 8 的 64 位 ANE 向后兼容

Posted

技术标签:

【中文标题】适用于 iOS 8 的 64 位 ANE 向后兼容【英文标题】:64 Bit ANE for iOS 8 backwards compatibility 【发布时间】:2015-04-02 17:56:57 【问题描述】:

我正在尝试创建一个简单的 ANE 来扩展我的 Flex 应用程序。

我按照本教程完成此任务:http://www.lorenzonuvoletta.com/how-to-create-your-own-ane-for-ios-using-adobe-air/

我使用 iOS 8.1 SDK 编译了我的原生库,因为我已经阅读了一些我应该支持来自 Apple 的 64 位限制的块。

我将 plattformoptions.xml 更改为以下内容(发现不再支持 4.0 的最低 sdk):

<?xml version="1.0" encoding="utf-8"?>
<platform xmlns="http://ns.adobe.com/air/extension/3.7">
    <sdkVersion>8.1</sdkVersion>
    <linkerOptions>
        <option>-ios_version_min 6.1</option>
    </linkerOptions>
</platform>

我的 ANE 在 iOS 8.1 下工作正常,但是当我尝试在与 iOS 7.1.1 设备相同的测试应用程序中使用它时,我收到以下错误:

[Fault] exception, information=VerifyError: Error #1014: Class de.hoermann.ast.eemawe.ane.nativeAlert::ANENativeAlert could not be found.

我使用 Flex SDK 4.14.0 和 AIR Runtime 16 编译了该应用程序。

如何支持比 8.1 更早的 iOS 版本?

我已经将 Xcode 中的 iOS 部署目标设置为 4.3,并尝试使用 iOS 7.1 SDK 编译本机库。

经过 2 天的搜索和测试后,我陷入了困境……

【问题讨论】:

【参考方案1】:

好吧,我终于找到了解决这个问题的方法! :)

此错误是由 AIR 16 运行时中的错误引起的。 当应用程序使用 ANE 并在装有 iOS 7.x 的 64 位设备上运行时。

使用 AIR 17 (Beta) 编译应用程序可以解决此问题。

Air Beta 可以在这里找到:http://labs.adobe.com/downloads/air.html (使用 Flex SDK 时,请务必下载 AIR SDK for Flex Developers)

我希望我能在这篇文章中帮助其他有类似问题的人。

【讨论】:

以上是关于适用于 iOS 8 的 64 位 ANE 向后兼容的主要内容,如果未能解决你的问题,请参考以下文章

如何使 iOS 7 应用向后兼容?

适用于 IOS 的摄像机本机扩展

Xcode 7 Stack Views 如何向后兼容 iOS 8 和 iOS 7?

适用于 AIR Android 应用程序的 Chromecast 和 ANE - 访问 android.os

Qsettings 适用于 32 位 apk 但不在我的 64 位 apk 中创建文件

swift 3 中的 DISPATCH_TIME_NOW 和向后兼容性