【发布时间】:2015-02-06 01:00:00
【问题描述】:
所以,我去年使用 PhoneGap 3.4 为客户端构建了一个应用程序,并为 iOS 和 Android 编写了几个自定义的原生插件。他们工作得很好。
在 www/config.xml 我这样指定它们(省略了实际的插件名称):
<feature name="MyPluginName">
<param name="ios-package" value="MyPluginiOSClass" />
<param name="android-package" value="foo.bar.MyPluginAndroidClass" />
</feature>
插件本身并不重要,重要的是iOS插件是在platforms/ios下的Xcode项目中实现的,而Android插件是在platforms/android下的Eclipse项目中实现的。
现在,我还通过phonegap plugin add foo使用了PhoneGap附带的一些插件,所以我指定了一些标准插件:
org.apache.cordova.core.console 0.2.0 "Console"
org.apache.cordova.core.device 0.2.1 "Device"
org.apache.cordova.core.file 0.2.1 "File"
org.apache.cordova.core.file-transfer 0.3.1-dev "File Transfer"
org.apache.cordova.core.network-information 0.2.1 "Network Information"
以前,当我在命令行上运行 phonegap prepare 时,目标平台的 config.xml 将包含这些“官方”插件,以及我在 www/config.xml 中指定的插件
然而,一年后,我正在对应用程序进行一些更新...当我运行 phonegap prepare 时,<feature> 块被忽略。
很明显我做错了什么和/或新的构建系统比以前更不宽容。由于插件代码属于我的客户,我无法将其开源并将其放在某个注册表中以由 pluginman 管理。如何在 config.xml 中恢复我的原生插件?
(我目前正在手动将那些<feature> 块放回去,当命令行工具将它们删除时,但我宁愿正确地这样做。
帮助! (谢谢)
注意:我不使用 phonegap 命令行来构建最终的可执行文件,我分别使用 Xcode 和 Eclipse。我只是使用 phonegap 命令行复制我的 www/ 文件夹并构建 config.xml
【问题讨论】: