I created a cordova project using cordova create project hello com.hello Hello
.
And added iOS platform using cordova platform add iOS
.
And
New solution
This issue is fixed in the latest version of the "ios-sim" package (so now this is probably the easier solution - compared to the old one which is listed below). In order to update the "ios-sim" package to the latest version run this in your terminal/cmd:
cd platforms/ios/cordova/node_modules/
sudo npm install -g ios-sim@latest
Old solution
The problem is that the name_id_map[deviceName]
returns undefined
for "iPad Pro (12.9-inch)" and "iPad Pro (10.5-inch)".
You can check it with a console.log('name_id_map[ deviceName ]: ' + name_id_map[ deviceName ]);
.
I fixed this bug by adding an if statements which checks if the device is defined in "platforms/ios/cordova/node_modules/ios-sim/src/lib.js:282".
I replaced this:
list = [];
var remove = function(runtime) {
// remove "iOS" prefix in runtime, remove prefix "com.apple.CoreSimulator.SimDeviceType." in id
list.push(util.format('%s, %s', name_id_map[ deviceName ].replace(/^com.apple.CoreSimulator.SimDeviceType./, ''), runtime.replace(/^iOS /, '')));
};
with this:
list = [];
var remove = function(runtime) {
// remove "iOS" prefix in runtime, remove prefix "com.apple.CoreSimulator.SimDeviceType." in id
if (name_id_map[deviceName] && runtime) {
list.push(util.format('%s, %s', name_id_map[deviceName].replace(/^com.apple.CoreSimulator.SimDeviceType./, ''), runtime.replace(/^iOS /, '')));
}
};
The "iPad Pro (10.5-inch)" simulator won't be on the list (but it doesn't probably work anyway - didn't check).
Bug report on github: https://github.com/phonegap/ios-sim/issues/210