Cordova插件fetch.json和config.xml之间的变量

时间:2016-06-17 13:33:03

标签: cordova phonegap-plugins cordova-plugins

所以我正在构建一个cordova应用程序,它使用Facebook登录插件(但问题也适用于任何其他插件)。有时我想更改插件连接的Facebook APP_ID,所以我假设以下流程可行:

首先。使用新的Facebook ID更改config.xml中的变量

<plugin name="cordova-plugin-facebook4" spec="~1.7.1">
    <variable name="APP_ID" value="1728167004731036" />
    <variable name="APP_NAME" value="QuickShop Sandbox" />
</plugin>

秒。执行cordova prepare后跟cordova build --release android

但是,以下文件保留了安装插件时在fetch.json中指定的旧变量。

platforms/android/android.json
platforms/android/res/values/facebookconnect.xml
platforms/android/build/build/intermediates/incremental/mergeReleaseResources/merger.xml
platforms/android/build/intermediates/res/merged/values/values.xml

fetch.json中的变量是否会覆盖config.xml中的变量,我该怎么做相反的事情。指示Cordova始终使用config.xml

中的插件变量的最佳方法是什么

1 个答案:

答案 0 :(得分:1)

首先要解释一些事情,您不必在config.xml中明确添加插件,因为它不是授权,如果需要,您也可以使用--save选项自动添加它,而不是手动添加。例如,

cordova plugin add cordova-plugin-camera --save

此命令添加插件并自动将条目添加到config.xml

此外,fetch.json是一个跟踪已安装插件的文件,它们的来源和修订版如npm package.json此文件在cordova add / remove插件上更新。当我们cordova prepare时,cordova从plugins / ios.json读取插件列表(如果是ios),从plugins / fetch.json获取插件信息并尝试在本地查找插件。

因此,如果要指示cordova始终使用config.xml中的插件变量,请按照以下步骤操作:

  • 在config.xml中定义插件依赖项(最好使用--save选项)

  • 删除插件文件夹

  • 中的平台和内容
  • 运行cordova platform add PLATFORM_NAME命令

这可确保插件信息始终符合config.xml