导出到 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)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Adobe Air Mobile 的 Android 原生扩展中包含额外的 Jar
如何使用 C# 为 Windows 构建 AIR 本机扩展?