Eu já tive um problema parecido com o React-native run-ios e com a mesma mensagem de erro que a sua. O meu arquivo /node_modules/react-native/local-cli/runIOS/runIOS.js
estava assim:
function runOnSimulator(xcodeProject, args, scheme) {
return new Promise(resolve => {
try {
var simulators = {devices}; //formato json
} catch (e) {
console.log("e", e);
throw new Error('Could not parse the simulator list output');
}
const selectedSimulator = findMatchingSimulator(simulators, args.simulator);
console.log("selected", selectedSimulator);
if (!selectedSimulator) {
throw new Error(`Could not find ${args.simulator} simulator`);
}
O problema está no parse da versão dos dispositivos, no código deve estar algo tipo assim:
/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
"com.apple.CoreSimulator.SimRuntime.tvOS-12-1" //for tvOS
"com.apple.CoreSimulator.SimRuntime.iOS-12-1" // for iOS
Quando, na verdade, o React Native checa a versão de dispositivos dessa forma:
if (!version.startsWith('iOS') && !version.startsWith('tvOS')) {
continue;
}
Então o React Native não consegue reconhecer esta outra forma. Para solucionar o problema, troca o /node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
para isso aqui:
if (!version.startsWith('com.apple.CoreSimulator.SimRuntime.iOS') && !version.startsWith('com.apple.CoreSimulator.SimRuntime.tvOS')) {
continue;
}