导出到 Air 原生扩展时包括 info.plist (iOS)

Posted

技术标签:

【中文标题】导出到 Air 原生扩展时包括 info.plist (iOS)【英文标题】:Including info.plist (iOS) when exporting to Air native extensions 【发布时间】:2013-11-25 13:18:00 【问题描述】:

我在使用 Xcode/ios 的外部附件框架导出工作的 .ANE 时遇到问题。让我简要介绍一下我做了什么:

我拿了adobe网站的Vibration example,我可以成功编辑这个例子并创建一个在我的iPad上工作的.ANE并强制它发出声音(iPad显然不支持振动)。然后,我包含了我开发的框架元素,用于与外部设备进行特定形式的蓝牙通信。

此设备可以使用 ExternalAccessory 框架与我的 iPad 通信。当我仅在 Xcode 中构建应用程序时,它工作得很好。问题是我组织内的人不习惯使用 Objective-C,所以他们要求我使其与 AIR 兼容。我非常接近。实际上,我所有课程的逻辑似乎都有效,并且有效地调用了不同的方法。但是有一个问题:

为了使外部附件框架工作,我需要在我的 plist 中包含外部设备的协议。而且 Vibration 示例中提供的库示例似乎不包含 info.plist,所以我不知道如何在该库中包含协议。

有人可以帮助我吗?也许有这方面的具体经验,或者向我解释如何为我的库创建一个 info.plist 文件。我认为这是我完成挑战所需的唯一砖块。

仅供参考:我通过使用 Xcode Organizer 的控制台进行调试发现问题出在协议中,这是我得到的错误:“:错误 - 作为协议打开会话失败 [我删除了协议名称为了我的组织] 没有在 Info.plist 中声明"

【问题讨论】:

另外,我现在确实设法制作了自己的 Plist 文件,但它似乎没有包含在 .ane 中,这是有道理的,因为我只在其中包含 .a 文件.或者.a文件是否包含过程中生成的plist文件? 【参考方案1】:

我设法解决了这个问题,诀窍是编辑与您的应用程序一起生成的 xml 文件。这应该输入到代码中:

<iPhone> <InfoAdditions> <![CDATA[ <key>UISupportedExternalAccessoryProtocols</key> <array> <string> ... </string> </array> ]]> </InfoAdditions> <requestedDisplayResolution>standard</requestedDisplayResolution> </iPhone>

然后它将正常工作。 (对于...输入您的协议)

【讨论】:

以上是关于导出到 Air 原生扩展时包括 info.plist (iOS)的主要内容,如果未能解决你的问题,请参考以下文章

Air ANE - 链接原生 so 库

如何在 Adob​​e Air Mobile 的 Android 原生扩展中包含额外的 Jar

如何使用 C# 为 Windows 构建 AIR 本机扩展?

齿轮和齿轮扩展是不是仍在最新的 AIR 版本 32.0+ 中工作?

适用于 Android 的 Upnp 本机扩展 - AIR

如何将谷歌游戏服务添加到 AIR AS3?