未找到目标平台的应用程序所需的本机扩展“文件”的实现

时间:2012-08-09 22:54:38

标签: ios flash air air-native-extension

我正在尝试为iOS制作我的第一个ANE,我发现尝试编译.IPA文件时遇到了问题。

我得到的错误是:

  

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

其中,'XXX'是我的ANE的包裹。

好吧,我使用Flash Build 4.6和AIR 3.2 SDK来编译一个包含我需要的所有功能的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 an 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时,我得到了错误。

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

2 个答案:

答案 0 :(得分:4)

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

-storetype pkcs12 -keystore mac.p12

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

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

答案 1 :(得分: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中,您忘记在“Build Packaging”下的设置中使用您的应用程序构建打包扩展。请查看此处了解更多信息:http://distriqt.com/post/815