首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法更新到cordova-ios的最新版本

无法更新到cordova-ios的最新版本
EN

Stack Overflow用户
提问于 2019-05-23 07:12:14
回答 1查看 6.5K关注 0票数 0

我的应用程序是用Ionic和Cordova开发的,它包含插件GoogleMaps版本2.6.2 (最新版本),但它已经有一个月没有在iOS上加载,而且安卓仍然能工作。

我只是从一个同事,我是一个完全初学者从科多瓦,Ionic和npm的产品。无论如何,错误在于插件不再安装(正如我的控制台在xCode中告诉我的那样)。当我尝试将Cordova-ios更新为最新版本(离子型cordova平台更新ios)时,我只会收到错误消息。

代码语言:javascript
运行
复制
> cordova platform update ios
Using cordova-fetch for cordova-ios@^5.0.0
Failed to fetch platform cordova-ios@^5.0.0
Probably this is either a connection problem, or platform spec is incorrect.
Check your connection and platform name / version / URL.
Error: npm: Command failed with exit code 1 Error output:
npm WARN @ ionic-native / google-maps @ 3.10.3 requires a peer of @ ionic-native / core @ ^ 3.6.0 but none is installed. You must install peer dependencies yourself.
npm WARN @ ngx-translate / core @ 9.1.1 requires a peer of @angular / core @> = 5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN The package @ types / node is included as both a dev and production dependency.

npm ERR! path /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! code EEXIST
npm ERR! Refusing to delete /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim: is outside /path/to/app/node_modules / cordova-ios / node_modules / ios-sim and not a link
npm ERR! File exists: /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! Move it away, and try again.

npm ERR! A complete log of this can be found in:
npm ERR! /path/to/app/.npm/_logs/2019-05-23T06_41_36_667Z-debug.log
[ERROR] An error occurred while running subprocess cordova.
        
        cordova update ios exited with exit code 1.
        
        Re-running this command with the --verbose flag may provide more information.

那到底是什么意思?我想卸载iOS平台(离子cordova平台删除ios)并添加新平台(cordova platform添加ios@5.0.0),但卸载时已经收到以下错误:

代码语言:javascript
运行
复制
ionic cordova platform remove ios
> cordova platform remove ios --save
Removing ios from cordova.platforms array in package.json
Error: npm: Command failed with exit code 1 Error output:
npm WARN @ionic-native/google-maps@3.10.3 requires a peer of @ionic-native/core@^3.6.0 but none is installed. You must install peer dependencies yourself.
npm WARN @ngx-translate/core@9.1.1 requires a peer of @angular/core@>=5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN The package @types/node is included as both a dev and production dependency.

npm ERR! path /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! code EEXIST
npm ERR! Refusing to delete /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim: is outside /path/to/app/node_modules/cordova-ios/node_modules/ios-sim and not a link
npm ERR! File exists: /path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim
npm ERR! Move it away, and try again.

npm ERR! A complete log of this run can be found in:
npm ERR!     /path/to/app/.npm/_logs/2019-05-23T07_05_52_055Z-debug.log
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:125:23)
    at ChildProcess.emit (events.js:196:13)
    at maybeClose (internal/child_process.js:1011:16)
    at Socket.<anonymous> (internal/child_process.js:416:11)
    at Socket.emit (events.js:196:13)
    at Pipe.<anonymous> (net.js:586:12) {
  stderr: 'npm WARN @ionic-native/google-maps@3.10.3 requires a peer of ' +
    '@ionic-native/core@^3.6.0 but none is installed. You must install peer ' +
    'dependencies yourself.\nnpm WARN @ngx-translate/core@9.1.1 requires a ' +
    'peer of @angular/core@>=5.0.0 but none is installed. You must install ' +
    'peer dependencies yourself.\nnpm WARN The package @types/node is ' +
    'included as both a dev and production dependency.\n\nnpm ERR! path ' +
    '/path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim\n' +
    'npm ERR! code EEXIST\nnpm ERR! Refusing to delete ' +
    '/path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim: ' +
    'is outside ' +
    '/path/to/app/node_modules/cordova-ios/node_modules/ios-sim ' +
    'and not a link\nnpm ERR! File exists: ' +
    '/path/to/app/node_modules/cordova-ios/node_modules/.bin/ios-sim\n' +
    'npm ERR! Move it away, and try again.\n\nnpm ERR! A complete log of this ' +
    'run can be found in:\nnpm ERR!     ' +
    '/path/to/app/.npm/_logs/2019-05-23T07_05_52_055Z-debug.log\n',
  code: 1
}
[ERROR] An error occurred while running subprocess cordova.

        cordova platform remove ios --save exited with exit code 1.

        Re-running this command with the --verbose flag may provide more information.

我安装了以下插件:

代码语言:javascript
运行
复制
> cordova plugin ls
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-googlemaps 2.6.2 "cordova-plugin-googlemaps"
cordova-plugin-ionic-webview 4.0.1 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-sqlite-storage 2.6.0 "Cordova sqlite storage plugin"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-push 1.11.1 "PushPlugin"

我到底该怎么做才能将cordova-ios升级到最新版本呢?我能给你的信息你还需要什么?我的Mac已经有了最新的操作系统。

编辑

我运行了rm -Rf platforms / node_modules / && npm install && ionic cordova platform add ios @ latest,现在我在控制台上得到了以下输出。

代码语言:javascript
运行
复制
> fsevents@1.2.9 install / path / to / app / node_modules / fsevents
> node install

node-pre-gyp WARN Using request for node-pre-gyp https download
[fsevents] Success: "/path/to/app/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node" is installed via remote

> node-sass@4.12.0 install / path / to / app / node_modules / node-sat
> node scripts / install.js

Cached binary found at /path/to/app/.npm/node-sass/4.12.0/darwin-x64-72_binding.node

> uglifyjs-webpack-plugin@0.4.6 postinstall / path / to / app / node_modules / uglifyjs-webpack-plugin
> node lib / post_install.js


> node-sass@4.12.0 postinstall / path / to / app / node_modules / node-sass
> node scripts / build.js

Binary found at /path/to/app/node_modules/node-sass/vendor/darwin-x64-72/binding.node
Testing binary
Binary is fine
npm WARN The package @ types / node is included as both a dev and production dependency.

added 1330 packages from 1442 contributors in 63.504s
> cordova platform add ios @ latest --save
Using cordova-fetch for cordova-ios @ latest
Adding ios project ...
Creating Cordova project for the iOS platform:
Path: platforms / ios
Package: com.gpsno
Name: GPS-No.com
iOS project created with cordova-ios@5.0.1
Installing "cordova-plugin-datepicker" for ios
Installing "cordova-plugin-device" for ios
Installing "cordova-plugin-geolocation" for ios
Installing "cordova-plugin-googlemaps" for ios
"framework" tag with type "podspec" is deprecated and will be removed. Please use the "podspec" tag.
cordova-plugin-googlemaps depends on GoogleMaps @ ~> 2.7.0, which conflicts with another plugin. GoogleMaps @ ~> 3.1.0 is already installed and was not overwritten.
Running command: pod install --verbose

      Official document https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.6.0/README.md Please consider buying beer for us  https://github.com/mapsplugin/ cordova-plugin-google maps # buy-us-a-beer
    
Installing "cordova-plugin-ionic-webview" for ios
Installing "cordova-plugin-splashscreen" for ios
Installing "cordova-plugin-statusbar" for ios
Installing "cordova-plugin-whitelist" for ios
Installing "cordova-sqlite-storage" for ios
Failed to install 'cordova-sqlite-storage': CordovaError: Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
    at Context.requireCordovaModule (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/Context.js:57:15)
    at module.exports (/path/to/app/plugins/cordova-sqlite-storage/scripts/beforePluginInstall.js:13:21)
    at runScriptViaModuleLoader (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:181:32)
    at runScript (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:157:16)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.js:125:20
    at processTicksAndRejections (internal / process / task_queues.js: 89: 5)
Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
[ERROR] An error occurred while running subprocess cordova.
        
        cordova platform add ios @ latest --save exited with exit code 1.
        
        Re-running this command with the --verbose flag may provide more information.

看起来一切都好起来了。我有必要担心这个消息吗

代码语言:javascript
运行
复制
cordova-plugin-googlemaps depends on GoogleMaps @ ~> 2.7.0, which conflicts with another plugin. GoogleMaps @ ~> 3.1.0 is already installed and was not overwritten.

如果是这样,我能做什么或删除?

我怎样才能解决这个问题

代码语言:javascript
运行
复制
Installing "cordova-sqlite-storage" for ios
Failed to install 'cordova-sqlite-storage': CordovaError: Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 08:55:30

为ios安装“cordova-sqlite存储”失败: CordovaError:不支持使用"requireCordovaModule“加载非cordova模块"q”。相反,将这个模块添加到您的依赖项中,并使用常规的"require“来加载它。

这是因为您已经安装了由第三方插件安装的cordova@9.0.0 requireCordovaModule,但是安装了一个使用requireCordovaModule的旧版本的cordova-sqlite-storage插件。因此,您需要更新cordova-sqlite-storage插件的版本:

代码语言:javascript
运行
复制
cordova plugin rm cordova-sqlite-storage && cordova plugin add cordova-sqlite-storage@latest

cordova-依赖于GoogleMaps @ ~> 2.7.0,它与另一个插件冲突。GoogleMaps @ ~> 3.1.0已经安装,没有被覆盖。

同样,可能是由于cordova-plugin-googlemaps的过时版本,所以更新它:

代码语言:javascript
运行
复制
cordova plugin rm cordova-plugin-googlemaps --nosave && cordova plugin add cordova-plugin-googlemaps@latest

注意在删除插件时使用--nosave选项来保留包含API键的任何插件变量。

您还应该检查并更新项目中的其他插件。一个简单的方法是使用cordova-check-plugins工具:

代码语言:javascript
运行
复制
npm install -g cordova-check-plugins
cordova-check-plugins --unconstrain-versions --update=auto
# or --update=interactive for interactive update process

免责声明:我是cordova-check-plugins的作者

更新插件时要注意,主要版本更新可能包含应用程序使用的API的中断更改,因此您应该注意到这一点:检查正在更新主要版本的插件的变更记录或提交历史记录,并在应用程序中进行任何必要的API更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56269867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档