执行此命令时:

react-native run-ios

我的应用程序在iPhone6模拟器设备中默认运行:

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

如何在默认情况下让应用程序在不同的模拟器设备(如iPhone5s)中运行?


当前回答

有一个项目设置,如果你搜索:

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

在模块下有一些选项。出口包括:

选择:[{ 命令:'——simulator [string]', 描述:'显式设置模拟器使用', 默认:'iPhone 7', }

我的是第231行,只需将其设置为有效安装的模拟器并运行 React-native run-ios默认情况下会运行到那个模拟器。

其他回答

使用——simulator标志指定一个模拟器。

以下是iOS 14.0之后可用的设备:

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="iPhone SE (2nd generation)"
npx react-native run-ios --simulator="iPhone 12 mini"
npx react-native run-ios --simulator="iPhone 12"
npx react-native run-ios --simulator="iPhone 12 Pro"
npx react-native run-ios --simulator="iPhone 12 Pro Max"
npx react-native run-ios --simulator="iPhone 13 Pro"
npx react-native run-ios --simulator="iPhone 13 Pro Max"
npx react-native run-ios --simulator="iPhone 13 mini"
npx react-native run-ios --simulator="iPhone 13"
npx react-native run-ios --simulator="iPod touch (7th generation)"
npx react-native run-ios --simulator="iPad Pro (9.7-inch)"
npx react-native run-ios --simulator="iPad (9th generation)"
npx react-native run-ios --simulator="iPad Air (4th generation)"
npx react-native run-ios --simulator="iPad Pro (11-inch) (3rd generation)"
npx react-native run-ios --simulator="iPad Pro (12.9-inch) (5th generation)"
npx react-native run-ios --simulator="iPad mini (6th generation)"

列出所有可用的iOS设备:

xcrun simctl list devices

目前没有办法设置默认值。

React Native Docs:在模拟器上运行

实现这一目标有多种方法:

通过使用——simulator标志 通过使用——udid标志

首先,您需要列出所有可用的设备。列出所有运行的设备

xcrun simctl list devices

这将给出如下输出:

以下是iOS 13.0之后可用的设备:

== Devices ==
-- iOS 13.6 --
    iPhone 8 (5C7EF61D-6080-4065-9C6C-B213634408F2) (Shutdown) 
    iPhone 8 Plus (5A694E28-EF4D-4CDD-85DD-640764CAA25B) (Shutdown) 
    iPhone 11 (D6820D3A-875F-4CE0-B907-DAA060F60440) (Shutdown) 
    iPhone 11 Pro (B452E7A1-F21C-430E-98F0-B02F0C1065E1) (Shutdown) 
    iPhone 11 Pro Max (94973B5E-D986-44B1-8A80-116D1C54665B) (Shutdown) 
    iPhone SE (2nd generation) (90953319-BF9A-4C6E-8AB1-594394AD26CE) (Booted) 
    iPad Pro (9.7-inch) (9247BC07-00DB-4673-A353-46184F0B244E) (Shutdown) 
    iPad (7th generation) (3D5B855D-9093-453B-81EB-B45B7DBF0ADF) (Shutdown) 
    iPad Pro (11-inch) (2nd generation) (B3AA4C36-BFB9-4ED8-BF5A-E37CA38394F8) (Shutdown) 
    iPad Pro (12.9-inch) (4th generation) (DBC7B524-9C75-4C61-A568-B94DA0A9BCC4) (Shutdown) 
    iPad Air (3rd generation) (03E3FE18-AB46-481E-80A0-D37383ADCC2C) (Shutdown) 
-- tvOS 13.4 --
    Apple TV (41579EEC-0E68-4D36-9F98-5822CD1A4104) (Shutdown) 
    Apple TV 4K (B168EF40-F2A4-4A91-B4B0-1F541201479B) (Shutdown) 
    Apple TV 4K (at 1080p) (D55F9086-A56E-4893-ACAD-579FB63C561E) (Shutdown) 
-- watchOS 6.2 --
    Apple Watch Series 4 - 40mm (D4BA8A57-F9C1-4F55-B3E0-6042BA7C4ED4) (Shutdown) 
    Apple Watch Series 4 - 44mm (65D5593D-29B9-42CD-9417-FFDBAE9AED87) (Shutdown) 
    Apple Watch Series 5 - 40mm (1B73F8CC-9ECB-4018-A212-EED508A68AE3) (Shutdown) 
    Apple Watch Series 5 - 44mm (5922489B-5CF9-42CD-ACB0-B11FAF88562F) (Shutdown) 

然后,您可以从输出中选择名称或uuid,然后按照自己的意愿进行操作。

使用——模拟器运行:

npx react-native run-ios --simulator="iPhone SE"

使用——udid标志运行:

npx react-native run-ios --udid 90953319-BF9A-4C6E-8AB1-594394AD26CE

我希望这个答案对你有帮助。

修改/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js的行代码

线55

  if (
    simulator.availability !== '(available)' &&
    simulator.isAvailable !== true
  ) {
    continue;
  }

取代的:

   if (
                simulator.availability !== '(available)' &&
                simulator.isAvailable !== true
              ) {
                continue;
     }

您可以在~/处创建别名。bash_profile文件:

alias rn-ios="react-native run-ios——模拟器\"iPhone 5s (10.0)\""

然后使用创建的别名运行react-native:

rn-ios美元

为此我开发了CLI工具。你只需输入“rndcli”。然后选择设备

https://github.com/nazrdogan/rndcli