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

【问题讨论】:

可以试试这个配置:item 0jp.star-m.starpro 嗨@Gandhi,这会给我一个数组内的字符串,一个字典内的所有以项目0为键的字典。无论如何我尝试了它,但它没有用。 如何使用这个插件来简化你的任务 - github.com/dpa99c/cordova-custom-config 嗨@Gandhi,这可能行得通,无论如何我已经知道如何写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 并删除了 &lt;key&gt; 标记,现在可以正常工作了。

【讨论】:

嘿 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 注入一个特性

Cordova 插件快速从 XML 中读取首选项

Cordova Plugin.xml 将未定义的键写入 info.plist

ionic加载cordova科大讯飞语音输入法插件相关问题

查找cordova插件name

如何使用 cordova 3.x 新的命令行界面在主要活动中编写代码