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',寻找以<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>
如果您在多个地方设置了相同的配置,总有一个会胜出。
【讨论】:
以上是关于Cordova Plugin.xml 将未定义的键写入 info.plist的主要内容,如果未能解决你的问题,请参考以下文章
Cordova:从 plugin.xml 修改 *-Info.plist