【问题标题】:Ionic CLI 3.8 Update - Cordova is not availableIonic CLI 3.8 更新 - Cordova 不可用
【发布时间】: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 

方法

以下是我尝试修复这些错误及其结果的所有方法:

  1. ionic cordova build ios:Cordova 插件在我的实际设备上工作,一切正常加载,没有错误。但是,这并不是真正的解决方案,因为我需要 livereload 来测试我的应用程序。

  2. ionic cordova platform rm ios && ionic cordova platform add ios:删除和添加iOS平台无效。

  3. npm install -g ionic@latest cordova@latest --save:删除 ioniccordova npm 包并将它们重新安装也无济于事。

  4. npm i:删除 node_modules 并重新安装所有模块并不能解决此问题。

  5. fetch-plugins:安装this package,删除项目根目录下的plugins文件夹,调用fetch-plugins无效。

由于我目前正在开发的两个 Ionic 应用程序都出现了这个问题,恐怕更多人会在更新他们的 Ionic CLI 时遇到这个问题。如果有人知道如何解决此问题,请在下面发表评论或发布解决方案。非常感谢您。

【问题讨论】:

    标签: ios cordova ionic-framework command-line-interface


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2014-07-06
    相关资源
    最近更新 更多