主要可能是新版本系统(或者软件)对于获取设备的返回数据格式作了修改
所以这里在 cordova build ios 获取可用设备列表的时候,会报 Cannot read property ‘toLowerCase’ of undefined。
解决方法很简单
打开这个文件:platforms/ios/cordova/lib/list-emulator-build-targets,
大概 54 行左右
device.availability.toLowerCase().indexOf('unavailable') < 0
device.isAvailable
availableDevicesInCategory.forEach(function (device) {
// console.log(device);
if (device.name === deviceType.name.replace(/\-inch/g, ' inch') && device.isAvailable) {
availAcc.push(device);
}
});
console.log(device);
输出是什么,我这里输出的是:
{ state: 'Booted',
isAvailable: true,
name: 'iPhone 11 Pro',
udid: 'A4E72C68-XXXX-XXXX-XXXX-DFB57EB137B7'
}