Cordova iOS 插件在构建后失败,除非我先删除平台和插件 JSON
Posted
技术标签:
【中文标题】Cordova iOS 插件在构建后失败,除非我先删除平台和插件 JSON【英文标题】:Cordova iOS Plugins fail after building, unless I remove platform and plugin JSON first 【发布时间】:2013-12-02 10:53:51 【问题描述】:我有一个 Cordova 3.2.0 项目,我正在使用 XCode 模拟器和通过 USB 的 iPhone 4S 进行测试。
当我执行以下操作时,应用程序运行没有错误:
rm -rf platforms/ios
rm plugins/ios.json
cordova platforms add ios
cordova build ios
如果我随后对我的代码进行任何类型的更改,然后重新运行:
cordova build ios
在 XCode 中启动应用程序时出现以下错误:
错误:未找到插件“StatusBar”,或者不是 CDVP 插件。检查 config.xml 中的插件映射。 2013-12-02 10:50:26.136 treemedia[774:60b] -[CDVCommandQueue executePending] [第 127 行] 失败 pluginJSON = [ “无效的”, “状态栏”, “_ready”,[]]
错误:未找到插件“设备”,或者不是 CDVP 插件。检查 config.xml 中的插件映射。 2013-12-02 10:50:26.140 treemedia[774:60b] -[CDVCommandQueue executePending] [第 127 行] 失败的 pluginJSON = [ "设备 1738472658", “设备”, "获取设备信息", [ ] ]
错误:未找到插件“NetworkStatus”,或者不是 CDVP 插件。检查 config.xml 中的插件映射。 2013-12-02 10:50:26.143 treemedia[774:60b] -[CDVCommandQueue executePending] [第 127 行] 失败 pluginJSON = [ "网络状态1738472659", "网络状态", "获取连接信息", [ ] ]
为了让应用程序正常运行,我必须删除平台和插件 json 文件,然后重新添加 ios 平台并重建。如果我跳过这些步骤并重新构建,则每次都会出现这些错误。
这只是在将 Phonegap/Cordova 从稍早的版本更新到 3.2.0 后才开始发生的。
【问题讨论】:
【参考方案1】:在 XCode 中,转到 Build Phases -> 打开 Compiled Sources 下拉菜单。 单击 + 并添加缺少的插件 .m 文件,该文件应该在您的 Plugins 目录(但在编译的源代码中缺少)。
这个解决方案来自另一个堆栈溢出答案,这里:https://***.com/a/21148428/80254
【讨论】:
【参考方案2】:我似乎已经通过修改项目的“www”子目录中存在的 config.xml 文件解决了这个问题。
通过从头开始的干净构建,Cordova 似乎在“platforms/ios”下生成了 config.xml 文件,带有插件功能标签(也许从插件文件本身的存在推断它们的用途),但在重建时,那些会丢失。
通过在 www/config.xml 路径中明确定义它们,重建工作正常。
【讨论】:
您希望我在 WWW 的根文件夹中添加插件配置。我说的对吗?【参考方案3】:对我有用的非常简单的解决方案:将 Cordova CLI 版本降级为在构建期间不会删除 ios.json 的最早版本。
我的案例:CLI 版本是 5.4.1,升级到 6.3.1 - 失败。降级到 6.2.0 - 好的
一个缺点是您需要手动测试 CLI 版本。
【讨论】:
以上是关于Cordova iOS 插件在构建后失败,除非我先删除平台和插件 JSON的主要内容,如果未能解决你的问题,请参考以下文章
安装cordova push插件后,Ionic build ios失败
安装 facebook-connect 插件后 Ionic 构建失败
Cordova google-analytics-plugin 导致 phonegap iOS 构建失败