Cordova:从 plugin.xml 修改 *-Info.plist
Posted
技术标签:
【中文标题】Cordova:从 plugin.xml 修改 *-Info.plist【英文标题】:Cordova: Modifying *-Info.plist from plugin.xml 【发布时间】:2016-05-17 20:14:36 【问题描述】:我正在构建一个插件来使用 ios 设备上的星型打印机,它们的 SDK 和一切工作正常,除了 config-file
修改 info.plist 文件的命令不能正常工作。在我的 plugin.xml 中,我有:
<config-file target="*-Info.plist" parent="Supported external accessory protocols">
<array>
<key>item 0</key>
<string>jp.star-m.starpro</string>
</array>
</config-file>
这样我应该得到一个 Supported external accessory protocols
数组,其中包含 1 个名为 item 0
的项目,输入 String
和值 jp.star-m.starpro
但相反,我得到一个包含两个项目的数组,就好像我会做的那样:
<array>
<key>item 0</key>
<string>item 0</string>
<key>item 1</key>
<string>jp.star-m.starpro</string>
</array>
我需要什么:
我得到了什么:
相关问题:
我通过阅读这些问题实现了config-file
。
-
Add entry to iOS .plist file via Cordova config.xml
Two cordova plugins modifying “*-Info.plist” CFBundleURLTypes
【问题讨论】:
可以试试这个配置:config-file
,谢谢。
很高兴它成功了,但很遗憾我错过了赏金。真的很接近:(
【参考方案1】:
经过进一步的测试和研究,我发现了如何编写config-file
才能正常工作。这是xml
<config-file target="*-Info.plist" parent="UISupportedExternalAccessoryProtocols">
<array>
<string>jp.star-m.starpro</string>
</array>
</config-file>
在这里,我将父名称从 Supported external accessory protocols
更改为 UISupportedExternalAccessoryProtocols
并删除了 <key>
标记,现在可以正常工作了。
【讨论】:
嘿 Jose,你有没有在某个地方分享过你的插件? Github 也许?【参考方案2】:您可以查看此custom config plugin,这应该只是您的任务。这有助于以您想要的方式操作 *-info.plist 文件。
【讨论】:
这看起来像是一个有用的插件,用于从科尔多瓦应用程序编辑 info.plist,但是(不确定我是否错过了它)我将如何从插件中使用它?因为那是我需要的。 @Jose 它本身是一个插件,用于操作 .plist 文件。不确定我是否正确理解了你的问题 我需要做的是从一个插件修改 .plist 文件,所以我不知道如何从另一个插件(我正在构建的那个)使用这个插件 @Jose 如果您的自定义插件的唯一目的是更新 .plist 文件,那么您可以使用这个现成的插件而不是您的。如果您的自定义插件还有更多功能,则将 .plist 文件更新留给该插件。但是如果您想在插件中使用它,建议您查看使用文件插件作为其依赖插件的文件传输插件。希望这是有道理的。 @Jose 谢谢何塞。你让我今天一整天都感觉很好。干杯以上是关于Cordova:从 plugin.xml 修改 *-Info.plist的主要内容,如果未能解决你的问题,请参考以下文章
iOS Cordova 第一个插件——plugin.xml 注入一个特性