背景:我在项目文件夹中通过linux上的npm安装了一个cordova 3.0.9(根据package.json)项目。
命令历史记录如下(在Cordova的npm安装之后,安装android SDK等,并创建项目文件夹):
cordova create . com.myproject MyProject
(一切都很好我得到了一个带有config.xml的www dir,以及虚拟hello cordova app等等。这个config.xml默认生成了我的项目等正确名称)
cordova platform add android
(我得到平台/ android文件夹等)
现在我安装了一些插件
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git
这很好,但事情也变得有趣。我注意到插件安装,以及向插件dir添加srcs也使用有用的Android指令更新我的platforms / android / res / xml / config.xml:
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.GeoBroker" />
</feature>
<feature name="Compass">
<param name="android-package" value="org.apache.cordova.CompassListener" />
</feature>
重要的是要注意我所知道的www dir中的config.xml是否需要进行“cordova构建”,从来没有更新任何与我安装的插件相关的信息,我甚至对它有点担心/尤其是在阅读之后:
http://docs.phonegap.com/en/3.0.0/config_ref_index.md.html#Configuration%20Reference。
我可以在这里回答我自己的问题,但是还会有一些问题/担忧。
所以从逻辑上讲,www dir中的config.xml仍然是非平台特定的,仍然是平淡无味的,只包含平台独立指令。但是我很好奇它作为平台独立的人肯定应该知道插件?平台特定的一个(platforms / android / res / xml / config.xml),甚至不知道我的项目的名称,它仍然被称为“Hello Cordova”。这也有点令人担忧。
有人可以告诉我一切都好吗?具体做法是:
提前致谢。
答案 0 :(得分:2)
Cordova CLI github页面上的README.md https://github.com/apache/cordova-cli提供了更多信息。
www/config.xml
文件是您的主要配置文件。只要您执行cordova build
或其他操作,就会使用它。但并非所有属性都重要。例如,不是插件。
来自README.md
cordova-cli支持通过以下内容更改应用程序的数据 config.xml文件:
- 可以通过元素的内容修改面向用户的名称。
- 可以通过顶级元素的id属性修改包名称(AKA包标识符或应用程序ID)。
- 可以通过顶级元素的version属性修改版本。
- 可以使用元素修改白名单。确保元素的origin属性指向有效的URL(您可以使用*作为通配符)。有关白名单语法的详细信息,请参阅docs.phonegap.com。您可以使用属性uri(BlackBerry-proprietary)或origin(符合标准)来表示域。
- 可以通过标签自定义特定于平台的首选项。有关您可以使用的首选项列表,请参阅docs.phonegap.com。
- 可以通过元素+属性定义应用程序的输入/开始页面。
这应该意味着以下我猜:
答案 1 :(得分:0)
AFAIK平台独立的config.xml主要由Phonegap Build服务使用。 我亲自体验你所描述的内容。
我会根据我的谦逊经验回答,但也很乐意阅读其他意见答案,因为文档很少。
没有。至少我在iOS上使用插件,一切都在设备上正常工作,让CLI更新平台细节。
不确定是否有bug。我手动更新该部分,包括版本。但我已经测试了我的应用程序仍处于开发阶段,AFAI经历过它不会影响同时在XCode中正确设置应用程序包ID。
我见过cordova构建平台独立信息并将其与特定于平台的配置文件合并。
我很想让更多有经验的人回答。
如果平台独立配置未传播到特定平台,则IMO仅更新平台特定文件。
相关问题:Cordova and PhoneGap have different config.xml examples