Cordoue: lancer des iOS emulateur image
Je suis l'élaboration d'une croix-plate-forme d'application mobile à l'aide de Cordoue, en mettant essentiellement l'accent sur iOS dans la phase de développement.
Pour mon processus de développement, il serait idéal si je pouvais commencer mon Cordova application directement depuis la ligne de commande et les charger dans un certain émulateur. Je peux le faire en exécutant la commande suivante à partir du répertoire racine du projet:
$cordova run --debug --emulator iOS
Cela fonctionne bien, et les résultats dans une iOS-simulateur de l'exécution de mon application dans une simulation de l'iPhone 4 Retina avec iOS 7.0.3
En plus de cette simulation de périphériques, j'aimerais aussi tester sur (par exemple) un iPad. J'ai ces émulation images installé, et je peux commencer mon app manuellement dans Xcode. Aussi, la commande list-emulator-images
(situé dans project_dir/platforms/ios/cordova/lib
) donne le résultat suivant:
"iPhone Retina (3.5-inch)"
"iPhone Retina (4-inch)"
"iPhone Retina (4-inch 64-bit)"
"iPhone"
"iPad"
"iPad Retina"
Cependant, la chose est la suivante: je n'arrive pas à comprendre comment démarrer l'émulateur à rien d'autre que la valeur par défaut (ce qui semble être le iPhone Retina (4-inch)
d'émulation de l'image). La sortie de cordova help
donne les informations suivantes:
run [--debug|--release]
[--device|--emulator|--target=FOO]
[PLATFORM] ............................ deploys app on specified platform devices / emulators
J'ai essayé des choses comme suit:
cordova run --debug --emulator=iPad iOS
Et de nombreuses variations de celle-ci, mais pas de chance. Chaque fois qu'il démarre dans le même émulateur.
La documentation pour l'outil de ligne de commande n'offre pas toutes les informations à ce sujet, et d'une vaste Google-recherche également échoué à rien. Ai-je raté quelque chose banale? Ou suis-je en train d'essayer de faire quelque chose de bizarre? J'espère vraiment que quelqu'un ici a de l'expérience avec cela, et peut apporter quelques réponses.
Merci beaucoup par avance!
edit: j'ai oublié de mentionner de façon explicite; je suis en train de faire tout cela sur un Mac. Comme mentionné précédemment, l'exécution de l'application dans les différents émulateurs/simulateurs dans Xcode fonctionne très bien.
Vous devez vous connecter pour publier un commentaire.
De savoir quelles sont les simulateur images disponibles que vous pouvez utiliser pour faire la liste
Puis utilisez l'une des simulateur de noms dans le --paramètre cible:
Important Quitter le simulateur avant de lancer une cible différente simulateur (Sur la barre de Menu, sélectionnez
Simulator->Quit
)Prendre en compte que vous devrez peut-être quitter le simulateur iOS via le menu pour passer de 3,5 à 4 pouces de l'iPhone.
liste dynamique est disponible dans
platforms/ios/cordova/lib/list-emulator-images
"Error: Cannot read property 'name' of undefined"
lors de la spécification de la cible avec des guillemets, je ne pouvais le faire fonctionner par l'exécution de cettecordova run ios --target=iPhone-6
. Espérons que cela sauve quelqu'un d'autre quelques difficultés!Comme le disent les csantanapr vous pouvez utiliser:
mais, dans ce cas, cordova (ou PhoneGap ou autres) de projet sera lancé sur iPhone 4s simulateur avec la version iOS 7.0.3.
Si vous voulez lancer le projet sur le même simulateur, mais avec d'autres version de l'iOS (7.1 et 8.0, si c'versions existent dans votre système)?
De la corse, vous pouvez faire comme dire cobberboy:
Mais vous pouvez améliorer
--target
option de cordouerun
commande.Au premier abord, vous devez vous assurer que cible la version iOS est disponible sur votre système.
Pour utiliser la réponse de cobberboy:
Ensuite, vous devez ouvrir le fichier
your_project_dir/platforms/ios/cordova/lib/run.js
et de trouver des lignes de code comme ci-dessous:Pour une utilisation
iPhone-4s, 7.1
(ou une autre) simple de l'ajouter à la matricevalidTargets
.Et dans
votre
--target="iPhone-4s, 7.1"
sera valide.Et de la fonction
deployToSim
derun.js
:convertir
iPhone-4s, 7.1
d'argument valablecom.apple.CoreSimulator.SimDeviceType.iPhone-4s, 7.1
pourios-sim
.ionic run ios --target='iPhone-6, 9.0'
lors de l'utilisation de Ionic Framework.validTargets
et j'ai été en mesure de préciser la plate-forme complète, ex:"--target="iPhone-6, 8.4""
. Ce serait vraiment bien si Cordova délégué de validation de la cible àios-sim
.TL;DR
Vous pouvez démarrer un émulateur spécifique et choisir votre version d'ios en utilisant directement ios-sim.
Détails
Quand j'ai couru ce:
et examiné les processus en cours d'exécution, j'ai vu (sur une seule ligne):
Enquête plus loin dans ios-sim, il semble que il ya quelques options plus spécifiques, en particulier:
Donc je n'ai qu'elle a proposé et a couru ios-sim avec un "showdevicetypes" argument et obtenu ceci:
De ne pas inclure le numéro de version
De Xcode 8.3.2...
Vieux thread, je sais, mais il me semble, peut-être, que la réponse a été légèrement modifié. Les conseils d'anciens messages dans ce fil de discussion a aidé, mais la lecture de la documentation incluse dans le code,
<cordova-project>/platforms/ios/cordova/lib/run.js
Exécuter
./platforms/ios/cordova/lib/list-emulator-images
liste des images d'émulateur. Ne pas inclure le numéro de version sur la fin lors de la prise de cordoue appel à courir dans la émulateur.Voir plus
cordova run ios --target=iPhone-6
Je ne peux pas commenter sur la réponse ci-dessus à cause de mon faible réputation, mais la liste des cibles est disponible à partir de:
sous
Cela dit, je ne peut pas faire de l'ipad retina émulateur de travail...
plus rapide de sortie de la liste des périphériques:
$ instruments -s devices
Suffit d'utiliser le nom de l'appareil sans la version.
S'exécute simulateur iOS avec demande web basé sur déjà généré de construire pour cordova application.
L'exécution de cette demande de navigateur s'ouvre simulator sur mac avec l'iPhone 8Plus version:
http://hostname:3000/cordova/build/%5Bxxxx-buildnumber%5D/imiter?target=iPhone-8-Plus
Différent de l'iphone et de l'ipad simulateur de
cordova exécuter ios --liste
cordova émuler ios --target "iPhone-7"
@Birja la réponse est de travailler à droite maintenant, mais la commande exécuter il a utilisé, enfin, est toujours mal alors voici la bonne réponse:
À la liste de tous les périphériques disponibles dans le simulateur de
cordova run ios --list
Il en résultera quelque chose comme ceci:
cordova run ios --target "iPad-Pro, 12.2"
Utiliser n'importe quelle cible à partir de ci-dessus. À exécuter dans le simulateur.