3

我正在尝试为 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 时,我得到了错误。

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

4

2 回答 2

4

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

-storetype pkcs12 -keystore mac.p12

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

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

于 2012-08-14T11:35:38.763 回答
3

你的 ANE 看起来不错,如果你最后得到了 ANE,我会说你做的那部分是正确的。

当您实际编译您的应用程序时,您很可能错过了 -extdir 选项。

adt -package 
    -target ipa-ad-hoc 
    -storetype pkcs12 -keystore YOUR_CERT.p12 
    -provisioning-profile YOUR_PROVISIONING_PROFILE.mobileprofile 
    myApp.ipa 
    myApp-app.xml 
    myApp.swf icons Default.png 
    -extdir extensionsDir

或者在 FlashBuilder 中,您忘记在“构建打包”下的设置中将扩展打包到应用程序构建中。在这里查看更多信息:http ://distriqt.com/post/815

于 2013-08-29T06:43:10.700 回答