Ionic CLI 3.8 更新 - Cordova 不可用
Posted
技术标签:
【中文标题】Ionic CLI 3.8 更新 - Cordova 不可用【英文标题】:Ionic CLI 3.8 Update - Cordova is not available 【发布时间】:2017-08-15 05:01:31 【问题描述】:背景
在两个完全独立的 Ionic 应用程序上更新我的 Ionic CLI(用于验证错误)后,我尝试在我的 iPhone 和 XCode 模拟器上编译、构建、运行和模拟这些应用程序。这是我在更新后收到的警告:
> twine-app@0.0.1 run /Users/Anthony/dev/twine-app
> ionic cordova run ios --l --consolelogs
✖ cordova platform add ios --save - failed!
[WARN] Platform already added. Saving platforms to config.xml.
✔ cordova platform save - done!
[WARN] Detected @ionic/cli-plugin-cordova in your package.json.
As of CLI 3.8, it is no longer needed. You can uninstall it.
[WARN] Multiple network interfaces detected!
因此,在看到此警告后,我尝试在我的 iPhone 和 XCode 模拟器中使用以下代码行使用 livereload
运行该应用程序:
ionic cordova run ios --livereload --consolelogs
和
ionic cordova emulate ios --livereload --consolelogs
错误
在那之后,我开始在每个 Cordova 插件的调用中收到一条警告,指出 cordova is not available
:
示例包括但不限于:
[00:44:00] console.warn: Native: tried calling StatusBar.styleDefault, but Cordova is not available. Make sure to
include cordova.js or run in a device/simulator
[00:44:00] console.warn: Native: tried calling SplashScreen.hide, but Cordova is not available. Make sure to include
cordova.js or run in a device/simulator
[00:44:00] console.warn: Native: tried calling SpeechRecognition.requestPermission, but Cordova is not available. Make
sure to include cordova.js or run in a device/simulator
方法
以下是我尝试修复这些错误及其结果的所有方法:
ionic cordova build ios
:Cordova 插件在我的实际设备上工作,一切正常加载,没有错误。但是,这并不是真正的解决方案,因为我需要 livereload 来测试我的应用程序。
ionic cordova platform rm ios && ionic cordova platform add ios
:删除和添加iOS平台无效。
npm install -g ionic@latest cordova@latest --save
:删除 ionic
和 cordova
npm 包并将它们重新安装也无济于事。
npm i
:删除 node_modules
并重新安装所有模块并不能解决此问题。
fetch-plugins
:安装this package,删除项目根目录下的plugins
文件夹,调用fetch-plugins
无效。
由于我目前正在开发的两个 Ionic 应用程序都出现了这个问题,恐怕更多人会在更新他们的 Ionic CLI 时遇到这个问题。如果有人知道如何解决此问题,请在下面发表评论或发布解决方案。非常感谢您。
【问题讨论】:
【参考方案1】:Ionic 团队在 3.8
发布后不久就发布了 Ionic CLI 3.8.1
,因此修复此错误所需要做的就是运行以下命令:
ionic cordova emulate --address=localhost -slc ios
然后我收到了升级 Ionic CLI 的选项:
? The Ionic CLI (local version) has an update available (3.8.0 => 3.8.1)! Would
you like to install it? Yes
✔ npm install --save-dev --save-exact ionic@latest - done!
[OK] Updated Ionic CLI to 3.8.1! ?
我所有的 Cordova 插件现在都可以正常工作了。
【讨论】:
我遇到了同样的问题,但是通过运行命令,我无法解决我的问题。你在这里做了别的什么吗?请告诉我。 我收到以下错误:xcodebuild: error: Unable to find a destination matching the provided destination specifier: platform:iOS Simulator, OS:latest, name:iPhone 5s The requested device could not be found because no available devices matched the request. Ineligible destinations for the "cSmart" scheme: platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device Error: Error code 70 for command: xcodebuild with args
以上是关于Ionic CLI 3.8 更新 - Cordova 不可用的主要内容,如果未能解决你的问题,请参考以下文章
Ionic APP 热更新 之 产品发布状态下的热更新搭建,去local-dev-addon插件