Cordova config.xml 文件被重写

5
我建立了一个基本的 Cordova 项目,每当我运行 cordova build 后,IOS 中的 config.xml 文件被重新写入默认值,并且我在项目文件夹中添加到 config.xml 的任何首选项都只是附加到 IOS 平台文件夹中的 config.xml。例如,默认情况下,在 IOS 文件夹中的 config.xml 有< preference name="DisableOverscroll" value="false" />,当我将相同行(但为 True)添加到项目文件夹中的 config.xml 文件时,IOS 文件夹中生成的 config.xml 最终会同时拥有这两个条目(false 和 true)。 我如何让 IOS 文件夹中的 config.xml 文件按照我的设置具有首选项呢?感谢!

不要编辑 IOS 文件夹中的 config.xml 文件。它会使用根 config.xml 值在每次构建时进行修改,并由插件进行修改。相反,根据创建项目时使用的 cordova 版本,修改 /config.xml 或 /www/config.xml。 - QuickFix
@QuickFix - 你说的很有道理...但是我看到的和OP在这里描述的一样,而且这不是关于特定平台的config.xml文件(我甚至找不到它...也许它已经不存在了?):当我运行cordova build ios时,我的/config.xml会被重写为默认值。 - Jules
2个回答

2

谢谢大家。我昨晚找到了答案。在平台文件夹中有一个default.xml文件。一旦我修改了那里偏好设置的默认值,每当我运行构建命令时,它们就会正确地显示在config.xml中。


1
谢谢,这就是我一直在寻找的。我简直不敢相信这不在cordova文档中写明... 在他们的cli构建/准备命令的设计中存在误解,我认为。 - Żabojad
我们没有default.xml文件吗?同意@Żabojad的说法,这份文档太糟糕了。 - Oliver Dixon

0

从3.3.0开始,所有构建平台的config.xml文件都将在项目根目录而不是www文件夹中创建。

在您的情况下,位于www中的第二个配置可以安全地忽略,即使参数值为false。

参考:你应该知道的3个Cordova CLI更改

--- 更新:根据QuickFix的评论 ---

config.xml可能出现在iOS开发的3个位置。

  1. Cordova项目文件夹MyApp/config.xml
  2. iOS xcode项目文件夹MyApp/platforms/iOS/MyApp_name/config.xml
  3. iOS www文件夹MyApp/platforms/iOS/www/config.xml

在我的上面的评论中,我指的是第3个中的配置可以安全地忽略。而第2个中的config.xml是当您发布IPA文件时Xcode实际使用的文件。

第一个配置仅在运行cordova build ioscordova prepare ioscordova run ios命令时由Cordova使用 - 如果您每次构建IPA时都使用这些命令,则您的主配置应该是文件第一,正如@QuickFix所提到的,No. 2和No. 3的配置在运行这些cordova命令时被覆盖。

与我的团队一起,我们只在整个项目开发生命周期中运行cordova build ios一次。我们通过Xcode进行所有更改,并将HTML文件直接复制到MyApp/platforms/iOS/www/

注意:对于Android开发,开发人员应始终仅修改配置第一


他所提到的config.xml并不是被移动的那个。被移动的那个是www/config.xml,对于使用版本3.3.3创建的项目,现在是/config.xml,但对于升级后的项目,www/config.xml仍然有效。Danny试图更新的文件是位于ios平台文件夹中的config.xml。每次构建时,这个文件都会被根目录中的文件覆盖。 - QuickFix
@QuickFix 你说得对,我指的是位于/platforms/iOS文件夹内部的配置文件。抱歉造成困惑,我已经更新了我的回答以澄清这一点。 - James Wong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接