iOs构建失败-UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'toLowerCase'

时间:2019-09-24 13:54:48

标签: javascript ios node.js cordova ionic-framework

从昨天开始,当我尝试构建iO时,它不会成功并抛出此错误:

(node:3043) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'toLowerCase' of undefined
    at /Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/lib/list-emulator-build-targets:54:45
    at Array.forEach (<anonymous>)
    at /Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/lib/list-emulator-build-targets:52:44
    at Array.reduce (<anonymous>)
    at /Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/lib/list-emulator-build-targets:50:57
    at Array.reduce (<anonymous>)
    at /Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/lib/list-emulator-build-targets:45:28
    at _fulfilled (/Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/node_modules/q/q.js:854:54)
    at /Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/node_modules/q/q.js:883:30
    at Promise.promise.promiseDispatch (/Users/username/Documents/petpo-fe-mobile-bugs/platforms/ios/cordova/node_modules/q/q.js:816:13)
(node:3043) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:3043) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

我已经尝试从git中检出一个新项目,删除并重新安装模块,删除并读取ionic中的平台,我不知道我还能尝试什么。 拜托,有人可以给我一些启发在这个问题上吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

toLowerCase用于 plugins / cordova-plugin-ios-localized-strings / scripts / add_supported_languages.js?

如果是,则该值未定义。

请尝试运行:ionic build --prod

如果遇到错误->代码有问题。

如果您没有遇到任何错误->当cordova捆绑您的应用程序时,就会发生此问题。

如果是最后一个选项,请从bash(不是cmd)执行:ionic cordova build ios --prod或尝试再次删除并添加平台。

-最好的问候。

答案 1 :(得分:0)

可以通过以下方法解决此问题:转到list-emulator-build-targets:54:45并从 if 语句中删除条件device.availability.toLowerCase().indexOf('unavailable') < 0

在卸载第二版XCode之前,我正在使用此替代方法。

答案 2 :(得分:0)

今天我突然开始遇到这个问题。删除和添加平台并不能做到这一点。为了解决该问题,我删除了iOS平台版本4.5.5,并安装了该平台版本的最新版本,该版本似乎已对其进行了修复。

这样做:

1)删除iOS平台:

ionic cordova platform remove ios

2)安装最新版本的iOS平台:

ionic cordova platform add ios@latest --save

上面为我安装的版本5.0.1。此后,运行命令ionic cordova build ios没有显示任何错误。