web-dev-qa-db-fra.com

comment choisir l'émulateur ios à partir de la ligne de commande cordova / ionic

en utilisant la ligne de commande ionic émuler (je suppose que c'est la même chose que cordova phoengap), comment puis-je choisir le périphérique - grand écran ipad ou iphone. La valeur par défaut est toujours l’écran de 3,5 ".

56
MonkeyBonkey

Avec les versions ultérieures de Ionic et Cordova, vous pouvez utiliser l'une des commandes suivantes pour répertorier les émulations disponibles. Les commandes suivantes ont été testées avec Ionic v3.20.0 et Cordova 8.0.0:

ionic cordova emulate --list # List any OS
cordova run --list           # List any OS
cordova run ios --list       # List specific OS

Et ils donnent quelque chose comme:

Available ios virtual devices:
iPhone-5s, 11.2
iPhone-6, 11.2
iPhone-6-Plus, 11.2
iPhone-6s, 11.2
iPhone-6s-Plus, 11.2
iPhone-7, 11.2
iPhone-7-Plus, 11.2
iPhone-8, 11.2
iPhone-8-Plus, 11.2
iPhone-SE, 11.2
iPhone-X, 11.2
iPad-Air, 11.2
iPad-Air-2, 11.2
iPad--5th-generation-, 11.2
iPad-Pro--9-7-inch-, 11.2
iPad-Pro, 11.2
iPad-Pro--12-9-inch---2nd-generation-, 11.2
iPad-Pro--10-5-inch-, 11.2
Apple-Watch-38mm, watchOS 4.2
Apple-Watch-42mm, watchOS 4.2
Apple-Watch-Series-2-38mm, watchOS 4.2
Apple-Watch-Series-2-42mm, watchOS 4.2
Apple-Watch-Series-3-38mm, watchOS 4.2
Apple-Watch-Series-3-42mm, watchOS 4.2
Apple-TV-1080p, tvOS 11.2

Pour démarrer l'émulateur avec une utilisation de système d'exploitation spécifique:

ionic cordova emulate ios --target "iPhone-X"

Voir aussi: https://cordova.Apache.org/docs/fr/latest/reference/cordova-cli/#cordova-run-command

Pour une ancienne installation de Ionic et Cordova, j'ai utilisé la syntaxe mentionnée dans la réponse de RipTheJacker pour sélectionner le périphérique à émuler, à savoir:

ionic emulate ios --target="iPhone-4s"

Cependant, pour savoir quelles sont les émulations disponibles, je lance ceci:

ios-sim showdevicetypes

Cette commande retournera une liste, quelque chose comme ceci:

iPhone-4s, 8.4
iPhone-5, 8.4
iPhone-5s, 8.4
iPhone-6-Plus, 8.4
iPhone-6, 8.4
iPad-2, 8.4
iPad-Retina, 8.4
iPad-Air, 8.4
Resizable-iPhone, 8.4
Resizable-iPad, 8.4
106
John P
cordova emulate ios --target="TARGET"

ou

ionic emulate ios --target="TARGET"

TARGET est l'un des suivants: iPad, iPhone, iPad (Retina), iPhone (Retina 3.5 pouces), iPhone (Retina 4 pouces)

Par exemple: ionic emulate ios --target="iPhone-5"

45
RipTheJacker

Mise à jour de mai 2018

Courir

ionic cordova run ios --target="iPhone-X"

Vous pouvez remplacer iPhone-X par tout ce qui vient de la liste

./platforms/ios/cordova/lib/list-emulator-images

depuis le dossier racine de votre projet (comme indiqué dans commentaire de Tod Thomson )

Pour moi la liste est

iPhone-5s, 11.3
iPhone-6, 11.3
iPhone-6-Plus, 11.3
iPhone-6s, 11.3
iPhone-6s-Plus, 11.3
iPhone-7, 11.3
iPhone-7-Plus, 11.3
iPhone-8, 11.3
iPhone-8-Plus, 11.3
iPhone-SE, 11.3
iPhone-X, 11.3
iPad-Air, 11.3
iPad-Air-2, 11.3
iPad--5th-generation-, 11.3
iPad-Pro--9-7-inch-, 11.3
iPad-Pro, 11.3
iPad-Pro--12-9-inch---2nd-generation-, 11.3
iPad-Pro--10-5-inch-, 11.3
Apple-TV-1080p, tvOS 11.3
Apple-TV-4K-4K, tvOS 11.3
Apple-TV-4K-1080p, tvOS 11.3
Apple-Watch-38mm, watchOS 4.2
Apple-Watch-42mm, watchOS 4.2
Apple-Watch-Series-2-38mm, watchOS 4.2
Apple-Watch-Series-2-42mm, watchOS 4.2
Apple-Watch-Series-3-38mm, watchOS 4.2
Apple-Watch-Series-3-42mm, watchOS 4.2

La version de l'OS (c'est-à-dire 11.3) peut changer en fonction des images que vous avez téléchargées et de votre version de XCode. Donc, si les périphériques de cette liste ne fonctionnent pas, exécutez la commande et obtenez votre propre liste.

12
Hugo H

Je ne sais pas pourquoi ces réponses ne fonctionnent pas pour moi. Mais ce qu'il fait c'est faire le suivant:

native-run --list

Virtual Devices:

  iPad (5th generation) 12.2 11904882-5E5A-4941-B291-5D38F3B51E98
  iPad (6th generation) 12.2 82079A1A-87C1-47EC-BEC2-69BA97FC440C
  iPad Air 12.2 7E90921D-D166-4CE1-956F-0193EF6E972F
  ...

Cela m'amène les identifiants des périphériques pour que je puisse le faire ensuite:

ionic cordova run ios --livereload --target "BA4986B3-9102-4250-91BF-7DDF7D7BC60D"
2
Daniel S.

J'ai le même problème depuis ionic2. On dirait que ionic/cordova ignore ios-sim et en attribue le sien au moment de l’émulation. Reportez-vous à la plate-forme installée, par exemple ios (plates-formes/ios/cordova/lib/run.js):

Pour voir les simulateurs disponibles, lancez

ios-sim showdevicetypes

/ validate target device for ios-sim
// Valid values for "--target" (case sensitive):
var validTargets = ['iPhone-4s', 'iPhone-5', 'iPhone-5s', 'iPhone-6-Plus', 'iPhone-6',
    'iPhone-6s-Plus', 'iPhone-6s', 'iPad-2', 'iPad-Retina', 'iPad-Air', 'iPad-Air-2',
    'iPad-Pro', 'Resizable-iPhone', 'Resizable-iPad'];
if (!(runOptions.device) && runOptions.target && validTargets.indexOf(runOptions.target.split(',')[0]) < 0 ) {
    return Q.reject(runOptions.target + ' is not a valid target for emulator');
}

Tant que vous exécutez le bon simulateur dans la liste, tout va bien:

ionique émuler ios --target = "iPhone-6s-Plus, 10.2"

2
Rodrigo Rubio