当我运行“ionic cordova platform add ios”时出现了错误。

11

当我运行ionic cordova platform add ios时发生了错误。它给出的提示信息如下:

[ERROR] Cordova 遇到了一个错误。 您可以直接运行上面的 Cordova 命令以获得更多信息。

[ERROR] 在运行 cordova platform add ios --save 时发生了错误 (退出码为 1):

    Using cordova-fetch for cordova-ios@^4.4.0
    Adding zone.js project...
    Error: Your zone.js platform does not have Api.js”

我试过更新ionic / cordova版本,并重新安装node.js和npm。但它仍然无法正常工作。

谁可以告诉我如何解决这个问题。谢谢。

5个回答

12

你的iOS平台似乎已经损坏了。请使用以下命令移除并重新添加平台以解决此问题:

cordova platform rm ios

cordova platform add ios

编辑

如果在尝试运行/构建安卓时出现此问题,可以使用相同的步骤来解决:

cordova platform rm android

cordova platform add android

然后运行 ionic cordova run/build android 就可以了。


@KingsleyTong,您能否尝试创建一个新项目并添加iOS平台,以便我们可以隔离问题? - Gandhi
谢谢你的回答。我在第二个命令中添加了--nofetch。通过使用你提供的命令,这个问题已经得到解决。 - Kingsley Tong
@Skizo-ozᴉʞS 感谢您提供的信息。对于遇到相同问题的人应该很有帮助。干杯! - Gandhi
@Gandhi,我已经编辑了你的答案,如果你不介意的话 ;) - Skizo-ozᴉʞS ツ
1
@Skizo-ozᴉʞS 完全没有问题。只要对他人有用,你就可以这样做。感谢你的编辑。 - Gandhi
显示剩余3条评论

4
这个问题已经通过使用命令解决了。
cordova platform rm ios
cordova platform add ios --nofetch

1
如果你在使用linux或mac系统,请使用sudo命令运行该命令。问题得到解决。
命令示例:sudo ionic cordova platform add android
输出:
$ sudo ionic cordova platform add android
> cordova platform add android --save

您已选择退出遥测。要更改此设置,请运行:cordova telemetry on。
使用 cordova-fetch 安装 cordova-android@~7.1.1
正在添加 Android 项目...
为 Android 平台创建 Cordova 项目:
    路径:platforms/android
    包名:io.ionic.starter
    名称:MyApp
    活动:MainActivity
    Android 目标:android-27
使用 cordova-android@7.1.4 创建了 Android 项目
检测到 Android Studio 项目
检测到 Android Studio 项目
在 config.xml 中发现插件“cordova-plugin-whitelist”。正在将其添加到项目中
为 Android 安装“cordova-plugin-whitelist”
此插件仅适用于大于 4.0 的 cordova-android 版本。如果您有旧的平台版本,则不需要此插件,因为白名单将内置。
将 cordova-plugin-whitelist 添加到 package.json 将“cordova-plugin-whitelist”的插件信息保存到 config.xml 在 config.xml 中发现插件“cordova-plugin-statusbar”。正在将其添加到项目中 为 Android 安装“cordova-plugin-statusbar” 将 cordova-plugin-statusbar 添加到 package.json 将“cordova-plugin-statusbar”的插件信息保存到 config.xml 在 config.xml 中发现插件“cordova-plugin-device”。正在将其添加到项目中 为 Android 安装“cordova-plugin-device” 将 cordova-plugin-device 添加到 package.json 将“cordova-plugin-device”的插件信息保存到 config.xml 在 config.xml 中发现插件“cordova-plugin-splashscreen”。正在将其添加到项目中 为 Android 安装“cordova-plugin-splashscreen” 将 cordova-plugin-splashscreen 添加到 package.json 将“cordova-plugin-splashscreen”的插件信息保存到 config.xml 在 config.xml 中发现插件“cordova-plugin-ionic-webview”。正在将其添加到项目中 为 Android 安装“cordova-plugin-ionic-webview” 子项目路径:CordovaLib 子项目路径:app 将 cordova-plugin-ionic-webview 添加到 package.json 将“cordova-plugin-ionic-webview”的插件信息保存到 config.xml 在 config.xml 中发现插件“cordova-plugin-ionic-keyboard”。正在将其添加到项目中 为 Android 安装“cordova-plugin-ionic-keyboard” 将 cordova-plugin-ionic-keyboard 添加到 package.json 将“cordova-plugin-ionic-keyboard”的插件信息保存到 config.xml 检测到 --save 标志或自动保存 将 android@~7.1.4 保存到 config.xml 文件中... > ionic cordova resources android --force ✔ 收集资源配置和源图像 - 完成! ✔ 过滤不需要重新生成的图像资源 - 完成! ✔ 上载源图像以准备转换:2 / 2 完成 - 完成! ✔ 生成平台资源:18 / 18 完成 - 完成! ✔ 修改 config.xml 以添加新的图像资源 - 完成!

系统描述:

Ubuntu 18.04 LTS

Ionic 4.5.0

Cordova 8.1.2

Node v8.14.0


1
尝试修改..//config.xml的头部。
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>MyApp</name>
<description>An awesome Ionic/Cordova app.</description>
<author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>
<content src="index.html" />

然后运行

ionic cordova platform add ios 
ionic cordova platform add android

https://istack.dev59.com/7LcEw.webp

https://istack.dev59.com/9FPdI.webp


经过所有的研究,修改config.xml后它终于能够工作了!谢谢你! - Eray T

0

使用以下命令:

sudo chown -R $USER:$GROUP ~/.npm

sudo chown -R $USER:$GROUP ~/.config

并检查是否安装了所有软件包:

全局软件包:

@ionic/cli-utils : 1.2.0
Cordova CLI      : 7.0.1 
Ionic CLI        : 3.2.0

本地包:

@ionic/app-scripts              : 1.3.7
@ionic/cli-plugin-cordova       : 1.2.1
@ionic/cli-plugin-ionic-angular : 1.2.0
Cordova Platforms               : ios 4.4.0
Ionic Framework                 : ionic-angular 3.3.0

系统:

Node       : v6.10.3
OS         : macOS Sierra
Xcode      : Xcode 8.2.1 Build version 8C1002 
ios-deploy : 1.9.1 
ios-sim    : 5.0.13 

谢谢您的回答。我已经通过使用以下命令解决了这个问题:cordova platform rm ios 和 cordova platform add ios --nofetch。 - Kingsley Tong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接