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

Posted

技术标签:

【中文标题】Cordova Plugin.xml 将未定义的键写入 info.plist【英文标题】:Cordova Plugin.xml writing undefined key in to info.plist 【发布时间】:2015-05-07 18:20:13 【问题描述】:

我正在创建一个小插件,该插件仅用于将一些值写入应用程序的 info.plist。以下是plugin.xml中的代码

<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
    id="com.example.fileshare"
    version="1.0.0">
<name>Example Fileshare Enable</name>
<description>Enables Filesharing</description>
<license>Apache 2.0</license>

<!-- ios -->
   <platform name="ios">
      <config-file target="*-Info.plist">
        <key>CFBundleDisplayName</key>
        <string>$PRODUCT_NAME</string>
        <key>UIFileSharingEnabled</key>
        <true/>
      </config-file>
   </platform>

</plugin>

从这段代码中,CFBundleDisplayName 被写入 info.plist 就好了,但是 UIFileSharingEnabled 被写为一个带有未定义键的布尔值。

我不确定是什么原因造成的,但我非常感谢一些指导。

【问题讨论】:

您解决了这个问题吗?我现在遇到了同样的问题。 【参考方案1】:

我遇到了同样的问题,我了解到 info.plist 文件是从最多三个不同的来源填充的。

插件有一个文件'plugin.xml',寻找以&lt;config-file&gt;开头的xml 可以在您的主 config.xml 中添加相同类型的标记 第三个位置,我的麻烦来源platform/ios/ios.json

ios.json 存储在 Xcode 中手动创建的配置,并在您运行 $ cordova prepare ios 时应用它们

我的解决方法是删除 ios.json 中的违规行,并从 info.plist 文件中删除所有违规行。在我的情况下,我能够手动将配置添加到我的 config.xml。

<config-file parent="ITSAppUsesNonExemptEncryption" target="*-Info.plist">
    <false />
</config-file>

如果您在多个地方设置了相同的配置,总有一个会胜出。

【讨论】:

以上是关于Cordova Plugin.xml 将未定义的键写入 info.plist的主要内容,如果未能解决你的问题,请参考以下文章

Cordova:从 plugin.xml 修改 *-Info.plist

iOS Cordova 第一个插件——plugin.xml 注入一个特性

科尔多瓦:找不到 plugin.xml

如何在 Cordova 插件中加载数据文件?

将 .jar 文件包含到 cordova 插件中

在 iOS 中使用自定义框架的 Cordova 插件错误