我正在开发一个React Native项目,如果尝试运行react-native run-ios
会收到以下错误,我会收到错误Could not find iPhone 6 simulator
:
> react-native run-ios
Scanning folders for symlinks in /Users/kurtpeek/mobile/applicant-app/node_modules (16ms)
Found Xcode workspace applicant.xcworkspace
Could not find iPhone 6 simulator
但是,如果我运行xcrun simctl list --json devices
,此模拟器会显示出来,类似于node_modules/react-native/local-cli/runIOS/runIOS.js
中所做的事情:
> xcrun simctl list --json devices | grep "\"iPhone 6\"" -B 5 -A 5
},
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPhone 6",
"udid" : "93E4D0AF-C267-406B-B8F5-B3B305BEBBF0",
"availabilityError" : ""
},
{
"availability" : "(available)",
上述文件中的runOnSimulator
函数读取
function runOnSimulator(xcodeProject, args, scheme) {
return new Promise((resolve) => {
try {
var simulators = JSON.parse(
child_process.execFileSync('xcrun', ['simctl', 'list', '--json', 'devices'], {encoding: 'utf8'})
);
} catch (e) {
throw new Error('Could not parse the simulator list output');
}
const selectedSimulator = findMatchingSimulator(simulators, args.simulator);
if (!selectedSimulator) {
throw new Error(`Could not find ${args.simulator} simulator`);
}
因此,我想在node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
中设置调试器断点。我尝试将debugger
语句放入其中,就像这样:
function findMatchingSimulator(simulators, simulatorName) {
debugger;
if (!simulators.devices) {
return null;
}
,但这不会启动调试器(例如,在Python中设置import pdb; pdb.set_trace()
)。如何调试react-native
CLI命令?
答案 0 :(得分:1)
您有2个选择:
/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
之前 react-native run-ios
要启动您的debugger
语句,您需要:
⌘ + D
>远程调试,在http://localhost:8081/debugger-ui/ 上打开Google Chrome,然后使用⌘ + ⌥ + J