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?

Wonka
la source
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

Daniel Basedow
la source
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

Ian L
la source
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.

svarrall
la source
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

Bruno Lemos
la source
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

Lijith Vipin
la source
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
Khairul Anwar
la source
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
Tanveerbyn
la source
1

J'ai développé un outil CLI pour cela. Vous pouvez simplement taper "rndcli" et sélectionner le périphérique

https://github.com/nazrdogan/rndcli

Nazir Dogan
la source
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)'
FinHead
la source
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

Thao Le
la source
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)"
Vivek
la source