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

Cordova Plugin Variables between fetch.json and config.xml

所以我正在构建一个 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

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

首先要解释几件事,您不必在 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.[=52= 获取插件信息] 并尝试在本地查找插件。

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

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

  • 删除插件文件夹中的平台和内容

  • 运行 cordova platform add PLATFORM_NAME 命令

这确保插件信息 config.xml 始终得到尊重