Appareil de simulation iOS par défaut de React Native Change


158

Quand j'exécute cette commande:

react-native run-ios

Mon application s'exécute par défaut sur le simulateur iPhone6:

Found Xcode project RN.xcodeproj
Launching iPhone 6 (9.2)...

Comment puis-je exécuter l'application sur un autre appareil de simulation (comme l'iPhone5s) par défaut?


Xcode -> Produit -> Destination ??
zipzit

2
Je ne sais pas comment configurer l'appareil par défaut, mais après l'exécution, react-native run-iosvous pouvez changer d'appareil dans Simulator > Hardware > Device > iOS x.x > iPhone 5. Cela fonctionnera jusqu'à ce que vous quittiez le simulateur.
sealskej

Réponses:


396

Spécifiez un simulateur à l'aide de l' --simulatorindicateur.

Voici les appareils disponibles à partir d'iOS 12.0:

npx react-native run-ios --simulator="iPhone 5s"
npx react-native run-ios --simulator="iPhone 6"
npx react-native run-ios --simulator="iPhone 6 Plus"
npx react-native run-ios --simulator="iPhone 6s"
npx react-native run-ios --simulator="iPhone 6s Plus"
npx react-native run-ios --simulator="iPhone 7"
npx react-native run-ios --simulator="iPhone 7 Plus"
npx react-native run-ios --simulator="iPhone 8"
npx react-native run-ios --simulator="iPhone 8 Plus"
npx react-native run-ios --simulator="iPhone 11"
npx react-native run-ios --simulator="iPhone 11 Pro"
npx react-native run-ios --simulator="iPhone 11 Pro Max"
npx react-native run-ios --simulator="iPad Pro (9.7-inch)"
npx react-native run-ios --simulator="iPad (7th generation)"
npx react-native run-ios --simulator="iPad Pro (11-inch)"
npx react-native run-ios --simulator="iPad Pro (12.9-inch)"
npx react-native run-ios --simulator="iPad Air (3rd generation)"
npx react-native run-ios --simulator="iPad Pro (11-inch) (1st generation)"

Répertoriez tous les appareils iOS disponibles:

xcrun simctl list devices

Il n'existe actuellement aucun moyen de définir une valeur par défaut.

React Native Docs: Exécution sur le simulateur


thnx a beaucoup aidé
Lakshaya Maheshwari

2
Et si vous voulez; react-native run-ios --simulator="iPad Air"
Burak Tokak

22
Pour voir tous les appareils disponibles, vous pouvez utiliser xcrun simctl list devicesplus d'informations ici
robd

1
Juste au cas où vous auriez plusieurs simulateurs avec le même nom, par exemple iPhone 6s pour ios 11, iPhone 6s pour ios 12, etc., vous pouvez définir un nom spécifique pour le simulateur à partir de Xcode -> Fenêtre -> Appareils et simulateurs
Chirag Purohit

Pourquoi plusieurs «iPad Pro»?
kojow7 le

48

Vous pouvez également utiliser npm pour cela en ajoutant une entrée à l' scriptsélément de votre package.jsonfichier. Par exemple

"launch-ios": "react-native run-ios --simulator \"iPad Air 2\""

Ensuite, pour utiliser ceci: npm run launch-ios


3
IMHO c'est la meilleure réponse car elle vous permet de stocker la configuration dans le contrôle de code / version. Cela signifie que vous n'avez pas besoin de vous souvenir de la syntaxe de la ligne de commande.
Nick

1
Je suis d'accord avec cette réponse. Vous pouvez également vous en tirer avec des citations simples: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz

24

Il existe un paramètre de projet si vous traquez:

{project}/node_modules/react-native/local-cli/runIOS/runIOS.js

Il y a quelques options ci-dessous, module.exportsnotamment:

options: [{ command: '--simulator [string]', description: 'Explicitly set simulator to use', default: 'iPhone 7', }

Le mien était la ligne 231, définissez simplement cela sur un simulateur installé valide et exécutez react-native run-ios-le sur ce simulateur par défaut.


5
Cela a fonctionné, bien que le fichier ait été caché dans {project} / node_modules / react-native / local-cli / runIOS /
Matej Ukmar

Excellente solution. Merci!
Ahmet Ardal

Je n'ai pas réellement ce module sous le dossier des modules de nœud.
Abdul Sadik Yalcin

1
Oui, l'ajout "runArguments": [ "--simulator", "iPhone 5s" ]de ma configuration de lancement a parfaitement fonctionné.
Can Poyrazoğlu

22

Vous pouvez créer un alias dans votre ~/.bash_profilefichier:

alias rn-ios="react-native run-ios --simulator \"iPhone 5s (10.0)\""

Et puis exécutez react-native en utilisant l'alias créé:

$ rn-ios


15

1) Renommez votre simulateur, si le simulateur porte le même nom mais une version iOS différente

Xcode -> Window -> Devices and Simulators -> Simulators.

entrez la description de l'image ici

2) Ouvrez votre dossier de projet natif react

3) Modifier package.json

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest",
    "flow": "node_modules/.bin/flow",
    "start-iphone6": "react-native run-ios --simulator \"iPhone 6 11.3\""
}

4) npm run start-iphone6


5

Comme Ian L a répondu, j'utilise également NPM pour gérer mes scripts.

Exemple:

{
  "scripts": {
    "ios": "react-native run-ios --simulator=\"iPad Air 2\"",
    "devices": "xcrun simctl list devices"
  }
}

De cette façon, je peux rapidement obtenir ce dont j'ai besoin:

  1. Lister tous les appareils: npm run devices
  2. Exécutez le simulateur par défaut: npm run ios

3

Voici un nouveau chemin pour changer le simulateur iOS qu'il vous suffit de changer

default: 'iPhone 6' or something else 

Chemin:

<project_root>/node_modules/@react-native-community/cli/build/commands/runIOS/runIOS.js


0

J'ai eu un problème avec XCode 10.2 spécifiant le numéro de version correct du simulateur iOS, donc utilisé:

react-native run-ios --simulator='iPhone X (com.apple.CoreSimulator.SimRuntime.iOS-12-1)'

0

Si vous voulez changer de périphérique par défaut et que vous n'avez qu'à exécuter React-native run-ios, vous pouvez rechercher dans le Finder le mot-clé "runios", puis ouvrir le dossier et le fichier index.js corrigé, changer "iphone X" sur votre appareil dans le besoin.

[1]: https://i.stack.imgur.com/BCtR1.png


0

Obtenez la liste des appareils avec cette commande

xcrun simctl list devices

Console

== Devices ==
-- iOS 13.5 --
    iPhone 6s (9981E5A5-48A8-4B48-B203-1C6E73243E83) (Shutdown) 
    iPhone 8 (FC540A6C-F374-4113-9E71-1291790C8C4C) (Shutting Down) 
    iPhone 8 Plus (CAC37462-D873-4EBB-9D71-7C6D0C915C12) (Shutdown) 
    iPhone 11 (347EFE28-9B41-4C1A-A4C3-D99B49300D8B) (Shutting Down) 
    iPhone 11 Pro (5AE964DC-201C-48C9-BFB5-4506E3A0018F) (Shutdown) 
    iPhone 11 Pro Max (48EE985A-39A6-426C-88A4-AA1E4AFA0133) (Shutdown) 
    iPhone SE (2nd generation) (48B78183-AFD7-4832-A80E-AF70844222BA) (Shutdown) 
    iPad Pro (9.7-inch) (2DEF27C4-6A18-4477-AC7F-FB31CCCB3960) (Shutdown) 
    iPad (7th generation) (36A4AF6B-1232-4BCB-B74F-226E025225E4) (Shutdown) 
    iPad Pro (11-inch) (2nd generation) (79391BD7-0E55-44C8-B1F9-AF92A1D57274) (Shutdown) 
    iPad Pro (12.9-inch) (4th generation) (ED90A31F-6B20-4A6B-9EE9-CF22C01E8793) (Shutdown) 
    iPad Air (3rd generation) (41AD1CF7-CB0D-4F18-AB1E-6F8B6261AD33) (Shutdown) 
-- tvOS 13.4 --
    Apple TV 4K (51925935-97F4-4242-902F-041F34A66B82) (Shutdown) 
-- watchOS 6.2 --
    Apple Watch Series 5 - 40mm (7C50F2E9-A52B-4E0D-8B81-A811FE995502) (Shutdown) 
    Apple Watch Series 5 - 44mm (F7D8C256-DC9F-4FDC-8E65-63275C222B87) (Shutdown) 

Sélectionnez la chaîne du simulateur sans ID, voici un exemple.

iPad Pro (12,9 pouces) (4e génération)

Commande finale

iPhone

• iPhone 6s

react-native run-ios --simulator="iPhone 6s"

• iPhone 8

react-native run-ios --simulator="iPhone 8"

• iPhone 8 Plus

react-native run-ios --simulator="iPhone 8 Plus"

• iPhone 11

react-native run-ios --simulator="iPhone 11"

• iPhone 11 Pro

react-native run-ios --simulator="iPhone 11 Pro"

• iPhone 11 Pro Max

react-native run-ios --simulator="iPhone 11 Pro Max"

• iPhone SE (2e génération)

react-native run-ios --simulator="iPhone SE (2nd generation)"

iPad

• iPad Pro (9,7 pouces)

react-native run-ios --simulator="iPad Pro (9.7-inch)"

• iPad (7e génération)

react-native run-ios --simulator="iPad (7th generation)"

• iPad Pro (11 pouces) (2e génération)

react-native run-ios --simulator="iPad Pro (11-inch) (2nd generation)"

• iPad Pro (12,9 pouces) de 4e génération

react-native run-ios --simulator="iPad Pro (12.9-inch) (4th generation)"

• iPad Air (3e génération)

react-native run-ios --simulator="iPad Air (3rd generation)"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.