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

时间:2015-05-07 18:20:13

标签: ios xml cordova info.plist

我正在创建一个小插件,只存在为应用的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 个答案:

答案 0 :(得分:0)

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

  • 插件的文件为'plugin.xml',查找以<config-file>开头的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>

如果您在多个地方都设置了相同的配置,那么您将永远获胜。