我正在尝试为iOS创建我的第一个ANE,但是在尝试编译.IPA文件时发现一个问题。

我得到的错误是:

找不到目标平台的应用程序所需的本机扩展“XXX”的实现。

其中,“XXX”是我的ANE的软件包。

好吧,我使用带有AIR 3.2 SDK的Flash Build 4.6来编译具有所需功能的SWC文件。
我使用XCode编译具有所有所需Objective-C代码的.A文件。
两个文件都编译良好。
比起我使用ADT来编译.ANE文件。它也很好。

我的extension.xml文件似乎没问题:

<extension xmlns="http://ns.adobe.com/air/extension/3.1">
    <id>XXX</id>
    <versionNumber>1.0.0</versionNumber>
    <name>ANE_NAME</name>
    <platforms>
        <platform name="iPhone-ARM">
            <applicationDeployment>
                <nativeLibrary>libExtension.a</nativeLibrary>
                <initializer>ExtensionInitializer</initializer>
                <finalizer>ExtensionFinalizer</finalizer>
            </applicationDeployment>
        </platform>
        <platform name="default">
            <applicationDeployment/>
        </platform>
    </platforms>
</extension>

同样,XXX是我的扩展程序包。 (例如:com.example.myANE)

我也在使用platform.xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<platform xmlns="http://ns.adobe.com/air/extension/3.1">

    <sdkVersion>5.1</sdkVersion>

    <linkerOptions>
        <option>-ios_version_min 4.2</option>
    </linkerOptions>

</platform>

并使用以下代码编译ANE:

adt -package -target ane MyANE.ANE extension.xml -swc MyANE.swc -platform iPhone-ARM -platformoptions platform.xml library.swf libExtension.a -platform default library.swf

一切都很好,我有一个ANE文件。

好吧,我正在从事的项目中已经有其他4个ANE,所以我认为Flash部分没有问题。但是,当我使用ADT编译IPA时,出现了错误。

任何人都可以提供帮助的见解?

最佳答案

您编写的ANE编码不包括签名选项。
我要编译的脚本与您的脚本相似,但是它包含以下参数:

-storetype pkcs12 -keystore mac.p12

如果您在Mac上进行编译,请不要使用Windows生成的.p12文件。 (反之亦然)
如果是这样,您应该能够在iOS设备的日志中看到错误(关于未签名的ANE无法加载的信息)

另外,记住每次编译.swc项目时都要提取library.swf。然后,您应该清理您的移动项目以包括新的ANE。

关于ios - 找不到目标平台的应用程序所需的 native 扩展名"file"的实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11893176/

10-09 08:59