我正在尝试为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/