使用Ionic/Cordova添加iOS平台时遇TypeError错误求助
解决
ionic cordova platform add ios时的macos-release迭代错误 执行ionic cordova platform add ios添加iOS平台时,触发node_modules/macos-release/index.js第30行的错误:
TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
错误源于代码const [name, version] = kshfNameMap.get(release);——当kshfNameMap.get(release)返回undefined时,无法进行数组解构赋值。
解决方案
检查当前macOS版本
运行终端命令sw_vers查看系统版本号,这个错误大多因为你的macOS版本不在旧版macos-release包的支持列表中(比如较新的Sonoma/Ventura版本)。更新macos-release依赖
进入项目根目录,执行命令更新该依赖到最新版:npm install macos-release@latest --save-dev清理缓存并重新构建依赖
- 清理npm缓存:
npm cache clean --force - 删除现有依赖文件:
rm -rf node_modules package-lock.json - 重新安装所有依赖:
npm install - 再次尝试添加iOS平台:
ionic cordova platform add ios
- 清理npm缓存:
临时应急修复(不推荐长期使用)
如果更新依赖后问题仍存在,可以临时修改报错文件:
打开node_modules/macos-release/index.js,找到第30行,替换为:const result = kshfNameMap.get(release); const [name, version] = result || ['Unknown macOS', 'Unknown'];修改后重新执行添加平台命令即可,不过后续依赖更新会覆盖这个修改。
内容的提问来源于stack exchange,提问作者Kashaf Umar
相关产品推荐
相关产品推荐

