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