<p>react-native run-ios๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค</p>

์— ๋งŒ๋“  2019๋…„ 02์›” 03์ผ  ยท  107์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react-native

ํ™˜๊ฒฝ


React Native ํ™˜๊ฒฝ ์ •๋ณด :
์ฒด๊ณ„:
์šด์˜์ฒด์ œ : macOS 10.14.2
CPU : (12) x64 Intel (R) Core (TM) i9-8950HK CPU @ 2.90GHz
๋ฉ”๋ชจ๋ฆฌ : 6.76GB / 32.00GB
์…ธ : 3.2.57-/ bin / bash
๋ฐ”์ด๋„ˆ๋ฆฌ :
๋…ธ๋“œ : 10.15.0-/ usr / local / bin / node
์›์‚ฌ : 1.13.0-/ usr / local / bin / yarn
npm : 6.4.1-/ usr / local / bin / npm
SDK :
iOS SDK :
ํ”Œ๋žซํผ : iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
์‹ญ์˜ค ์ผ:
์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค : 3.1 AI-173.4819257
Xcode : 10.1 / 10B61-/ usr / bin / xcodebuild
npm ํŒจํ‚ค์ง€ :
๋ฐ˜์‘ : 16.6.3 => 16.6.3
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ : 0.57.8 => 0.57.8
npmGlobalPackages :
์ƒ์„ฑ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ : 1.0.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI : 2.0.1
react-native-git-upgrade : 0.2.7

๊ธฐ์ˆ 


--simulator ์ธ์ˆ˜์— ์ถ”๊ฐ€ ํ•œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๊ด€๊ณ„์—†์ด 'react-native run-ios'๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜์—†๋Š” ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.
XCode์—๋Š” '๋ช…๋ น ์ค„ ๋„๊ตฌ'์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ญ์ƒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
iPhone X ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Error: Could not find iPhone X simulator
    at resolve (/Users/eric/.../swim/node_modules/react-native/local-cli/runIOS/runIOS.js:149:13)
    at new Promise (<anonymous>)
    at runOnSimulator (/Users/eric/.../swim/node_modules/react-native/local-cli/runIOS/runIOS.js:134:10)
    at Object.runIOS [as func] (/Users/eric/.../swim/node_modules/react-native/local-cli/runIOS/runIOS.js:106:12)
    at Promise.resolve.then (/Users/eric/.../swim/node_modules/react-native/local-cli/cliEntry.js:117:22)

์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฐ๋ชจ


XCode๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด '๋ฐ˜์‘ ํ˜• ์ƒˆ๋กœ์šด ์•ฑ'

'react-native run-ios'๋Š” --simulator ์˜ต์…˜์— ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ž„์‹œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

42 ํ–‰ :
if (! version.startsWith ( ' com.apple.CoreSimulator.SimRuntime. iOS') &&! version.startsWith ( 'tvOS')) {

Bug iOS Locked

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๋ชจ๋“  107 ๋Œ“๊ธ€

์ด์ „ ๋ฒ„์ „์˜ React Native๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฆด๋ฆฌ์Šค v0.58๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ react-native info ๋ฅผ ์‹คํ–‰ ํ•œ ๊ฒฐ๊ณผ๋กœ ์›๋ณธ ๊ฒŒ์‹œ๋ฌผ์„ ํŽธ์ง‘ํ•˜๋ฉด "ํ•ด๊ฒฐ : ์ด์ „ ๋ฒ„์ „"๋ ˆ์ด๋ธ”์ด ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ : 0.58.3 => 0.58.3

๊ทธ๋ฆฌ๊ณ  ๊ฐ™์€ ๋ฌธ์ œ

  1. ์ปดํ“จํ„ฐ์— ์–ด๋–ค iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  2. react-native run-ios โ€”device=โ€œXXXXXXโ€™ ๋ฅผ ํ†ตํ•ด ํƒ€๊ฒŸํŒ…ํ•˜๋ ค๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ•ญ์ƒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ
if (! version.includes ( 'iOS') &&! version.includes ( 'tvOS')) {
๊ณ„์†ํ•˜๋‹ค;
}

"com.apple.CoreSimulator.SimRuntime"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด startsWith์— ๋Œ€ํ•œ ์ˆœ์ˆ˜ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด https://github.com/facebook/react-native/pull/23293 ํ’€ ์š”์ฒญ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @osunnarvik PR์„ ๋งŒ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ง€๊ธˆ ์™œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์กฐ๊ธˆ ๋” ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ (PR์—์„œ)? ์ ‘๋‘์‚ฌ๊ฐ€ ์–ธ์ œ ๋ณ€๊ฒฝ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์ตœ์‹  Xcode์—์„œ? ๐Ÿค”

PR์˜ ์„ค๋ช…์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์–ธ์ œ ์‹œ์ž‘๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋งํ•˜๊ณ  XCode ๋ฐ xcrun์˜ ์ผ๋ถ€ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@kelset ์˜ˆ, ์žฅ์น˜ ๋ชฉ๋ก์˜ ํ˜•์‹์ด ์ตœ์‹  XCode๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค-์—ฌ๋Ÿฌ๋ถ„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

์ด๋ฏธ PR์„ 0.58๋กœ ๋ณ‘ํ•ฉํ–ˆ์œผ๋ฉฐ (0.59 ๋“ฑ์€ CLI๊ฐ€ ๋ถ„๋ฆฌ๋˜๋ฏ€๋กœ) ๋‹ค์Œ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค (0.58.4)์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

@kelset https://github.com/react-native-community/react-native-cli/pull/138 ์—์„œ simulatorString์„ ์ง€์ •ํ•  ๋•Œ ( @canterberry์˜ ์ฃผ์„) ์ฃผ์„์„

์Œ ์˜ค ์˜ˆ ์•„๋งˆ๋„ ๋ฌธ์ž์—ด์ด ์„ค์ •๋˜์—ˆ์„ ๋•Œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿค”

๋„ค, ๋‚ด์ผ ์•„์นจ์— ๋ณผ๊ฒŒ์š”.

https://github.com/facebook/react-native/pull/23305 ๋ฅผ ๋งŒ๋“ค์–ด simulatorString์˜ ์ ์„  ์ž…๋ ฅ ๋ฒ„์ „์„ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

@osunnarvik ์ด ๋ฌธ์ œ๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „ 0.59.1์—์„œ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๊ต‰์žฅํ•œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค !!

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

์ด ์ƒํ™ฉ์ด ์–ด๋–ป๊ฒŒ ์กด์žฌํ–ˆ๋Š”์ง€ ์ •๋ง ์ดํ•ด๊ฐ€ ์•ˆ ๋ผ

์ƒˆ ๋ฒ„์ „์—์„œ์ด ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@evanoralph ๋‚˜์ฒ˜๋Ÿผ ์˜ค๋Š˜์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด findMatchingSimulator.js ์—์„œ node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js findMatchingSimulator.js ์„ (๋ฅผ) ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋จผ์ € ๋ถ€ํŒ…์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์‹คํ–‰ xcrun simctl list --json devices ํ•˜๊ณ  ํ•จ๊ป˜ ํ•˜๋‚˜์˜ ๊ฒ€์ƒ‰ "state" : "Booted", .
๊ทธ๋Ÿฐ ๋‹ค์Œ findMatchingSimulator ํ•จ์ˆ˜์˜ ๋งจ ์œ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

return {
    udid: <uuid from booted device>,
    name: <Name of the booted simulator>,
    booted: true,
    version: "com.apple.CoreSimulator.SimRuntime.iOS-12-2",
}

version ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ€ํŒ… ๋œ ์žฅ์น˜ ๊ฐœ์ฒด์˜ ์ƒ์œ„ ํ‚ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ˆ˜์ •์ด ์•„๋‹™๋‹ˆ๋‹ค! ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

macOS 10.14.4๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ  XCode๊ฐ€ 10.2๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์ด ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค (์ผ์‹œ์ ์ธ ์†”๋ฃจ์…˜ ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ).

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๋Œ€๋ฐ•! ์ผ์‹œ์ ์ด์ง€๋งŒ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ฐ์‚ฌ! ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฒ„์ „์ด์žˆ๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (์˜ˆ : iPhone 5s iOS 10.3.1 ๋ฐ 12.2)๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์ด ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฒ„์ „์„ ์—ฝ๋‹ˆ ๋‹ค. --simulator "iPhone 5s (10.3)" ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„์ „์„ ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@evanoralph ๋‚˜์ฒ˜๋Ÿผ ์˜ค๋Š˜์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด findMatchingSimulator.js ์—์„œ node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js findMatchingSimulator.js ์„ (๋ฅผ) ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋จผ์ € ๋ถ€ํŒ…์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์‹คํ–‰ xcrun simctl list --json devices ํ•˜๊ณ  ํ•จ๊ป˜ ํ•˜๋‚˜์˜ ๊ฒ€์ƒ‰ "state" : "Booted", .
๊ทธ๋Ÿฐ ๋‹ค์Œ findMatchingSimulator ํ•จ์ˆ˜์˜ ๋งจ ์œ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

return {
    udid: <uuid from booted device>,
    name: <Name of the booted simulator>,
    booted: true,
    version: "com.apple.CoreSimulator.SimRuntime.iOS-12-2",
}

version ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ€ํŒ… ๋œ ์žฅ์น˜ ๊ฐœ์ฒด์˜ ์ƒ์œ„ ํ‚ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ˆ˜์ •์ด ์•„๋‹™๋‹ˆ๋‹ค! ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ง€๊ธˆ ๋‚˜์—๊ฒŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ .59.0์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js๊ฐ€์—†๋Š” ์œ ์ผํ•œ ์‚ฌ๋žŒ์ž…๋‹ˆ๊นŒ? local-cli ํด๋” ์•ˆ์—๋Š” cli.js ํŒŒ์ผ์ด ํ•˜๋‚˜๋ฟ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ ??

์ฐธ๊ณ ๋กœ, ์ด๊ฒƒ์€ ๋‚ด ์‹œ์Šคํ…œ ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

xcrun simctl delete๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ includes ๊ต์ฒดํ•˜์—ฌ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ ์ˆ˜์ •๋ฉ๋‹ˆ๊นŒ?

HHHEEEYYYY ... ๊ต์ฒด ํฌํ•จ ์ž‘ํ’ˆ !!!!!

@Titozzz ์ด ๋ฌธ์ œ๊ฐ€ ์–ธ์ œ ์ˆ˜์ • ๋ ์ง€์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ž„์‹œ ์ˆ˜์ •์€ ํŒ€ ๋ฐ git ์นœํ™”์  ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค.
๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ง„ํ–‰ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค ์ฃผ๋ฉด ๊ธฐ์—ฌํ•  ์ค€๋น„๊ฐ€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ
๋‚ด ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•œ ๊ฒฐ๊ณผ OP๊ฐ€ ์—ฌ๊ธฐ์—์„œ ์ œ์‹œํ•˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ์ธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” iPad์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•ด์•ผํ•˜๊ณ  iPad ์ด๋ฆ„์—๋Š” ๊ด„ํ˜ธ ์•ˆ์— ์žฅ์น˜ ํฌ๊ธฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. iPad Pro (9.7-inch) , CLI ์ฝ”๋“œ๋Š” ๊ด„ํ˜ธ ์•ˆ์˜ ์žฅ์น˜ ํฌ๊ธฐ๊ฐ€ iOS ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ iOS ๋ฒ„์ „์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋Œ€๊ด„ํ˜ธ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚ด RN ๋ฒ„์ „์€ 0.59.3์ž…๋‹ˆ๋‹ค.

์—ฌ๋ณด์„ธ์š” ์งˆ๋ฌธ์— ๋Œ€๋‹ต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js๊ฐ€์—†๋Š” ์œ ์ผํ•œ ์‚ฌ๋žŒ์ž…๋‹ˆ๊นŒ? local-cli ํด๋” ์•ˆ์—๋Š” cli.js ํŒŒ์ผ์ด ํ•˜๋‚˜๋ฟ์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ ??

@lpfunding : node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

๋‚ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณผ ์ˆ˜์žˆ์–ด ๊ธฐ์˜๋‹ค! ๋‘˜์งธ, ๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด Xcode๋Š” ๋ฒ„์ „ 8.1์ด๊ณ  X ์™ธ์—๋„ Xcode ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์žˆ์ง€๋งŒ ์ปดํŒŒ์ผํ•˜๋ฉด ํ„ฐ๋ฏธ๋„ ์˜ค๋ฅ˜๊ฐ€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ปดํŒŒ์ผ ์กฐ๊ฑด์„ ๋ณ€๊ฒฝํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•„ ๋„์›€์„ ์š”์ฒญํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์‚ฌ์‹ค์ƒ์˜ ์ˆ˜์ •์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ณต๊ฐœ PR์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ 0.58.6์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ์ปค๋ฐ‹ 9a8c9596ebe41e27d37ba18d6bf09f1c931c1ff2์—์„œ ์ˆ˜์ • ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ react-native๋ฅผ v59๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” XCode 10.2.1 (๋‚˜์ฒ˜๋Ÿผ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Apple์ด iPhone XR ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์ด๋ฆ„์„ iPhone Xส€๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (ํฐ "R"๋Œ€ ์ž‘์€ "ส€"์— ์œ ์˜) ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœํ•˜๋Š” ๊ฒฝ์šฐ react-native run-ios --simulator="iPhone Xส€" . ๊ณ ๋งˆ์›Œ ์• ํ”Œ ...

@ lcastillo88 ์˜ค ์™€์šฐ ์ข‹์€ ์บ์น˜์ž…๋‹ˆ๋‹ค, ์ •๋ง ์ด์ƒํ•œ ๋ณ€ํ™” ๐Ÿ˜…

iPad Pro ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๋กœ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌธ์ œ๋Š” findMatchingSimulator.js ์—์„œ ๊ด„ํ˜ธ ์•ˆ์˜ ๋ชจ๋“  ๊ฒƒ์ด ์‹คํ–‰ํ•˜๋ ค๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ iOS ๋ฒ„์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ iOS ๋ฒ„์ „ 10.5-inch (๋˜๋Š” ์‹คํ–‰ํ•˜๋ ค๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ)๋กœ iPad Pro ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์—ด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ์ด์œ ๋กœ ์ด๊ฒƒ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜๊ตฌ์  ์ธ ์ˆ˜์ •์ด ๊ตฌํ˜„ ๋  ๋•Œ๊นŒ์ง€์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์‰ฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ด๋ฆ„์„ ๊ด„ํ˜ธ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Xcode์—์„œ Window> Devices and Simulators๋ฅผ ํด๋ฆญํ•˜๊ณ  Simulators ํƒญ์„ ํด๋ฆญ ํ•œ ๋‹ค์Œ ์ž‘์—…์ค‘์ธ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋‹จ์ถ”๋กœ ํด๋ฆญํ•˜์—ฌ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

RN์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์ง€๋งŒ๋ณด๋‹ค ์ž๋™ํ™” ๋œ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ ์„ค์น˜ ํ›„ ๋‹ค์Œ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sed -i '' 's/startsWith/includes/g' node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

์ด๋ฅผ ํ†ตํ•ด CI ์„œ๋ฒ„์—์„œ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด 0.59๋ฅผ ์‚ฌ์šฉ์ค‘์ธ ๊ฒฝ์šฐ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?

ํŠนํžˆ iPad Pro ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (๋˜๋Š” ๊ด„ํ˜ธ ์•ˆ์— iOS ๋ฒ„์ „์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ์„ ํฌํ•จํ•˜๋Š” ๋‹ค๋ฅธ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ)์˜ ๊ฒฝ์šฐ ์ด๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ react-native์—์„œ ์—ฌ์ „ํžˆ ์†์ƒ๋ฉ๋‹ˆ๋‹ค.

๊ทธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๋ฏฟ์„ ์ˆ˜์—†๋Š” ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋ˆ„๊ตฐ๊ฐ€ ์ง€์ •๋œ iOS ๋ฒ„์ „์—์„œ ์‹คํ–‰ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ :
react-native run-ios --simulator="iPhone 8 (12-0)"
์ด์ „์—๋Š” (12.0) ์˜€์ง€๋งŒ xcode๋ฅผ 10.2.1 ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ 12-0 ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ค„์˜ if (!version.startsWith('iOS') .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ includes ๋กœ ๋Œ€์ฒดํ–ˆ๋‹ค : if (!version.includes('iOS') ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•ด ์ฃผ ์‹œ๊ฒ ์–ด์š”

ํ—‰

๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด 0.59๋ฅผ ์‚ฌ์šฉ์ค‘์ธ ๊ฒฝ์šฐ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ 0.59.8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ [ react-native-git-upgrade ํ†ตํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ ๋จ] ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

RN์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์ง€๋งŒ๋ณด๋‹ค ์ž๋™ํ™” ๋œ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ ์„ค์น˜ ํ›„ ๋‹ค์Œ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sed -i '' 's/startsWith/includes/g' node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

์ด๋ฅผ ํ†ตํ•ด CI ์„œ๋ฒ„์—์„œ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ์‚ฌ์šฉ์ค‘์ธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.52.1"

๋‹ค์Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ด๊ฒƒ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค.

node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js

๋ณ€๊ฒฝ ( ์ค„ ๋ฒˆํ˜ธ๋Š” 30์ด์—ˆ์Šต๋‹ˆ๋‹ค. )
if (version.indexOf('iOS') !== 0)

์—
if (version.indexOf('iOS') === -1)

[email protected]์„ ์‚ฌ์šฉ

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ณธ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ react-native run-ios --simulator = "iPhone_8"

๋กœ์ปฌ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

function findMatchingSimulator (simulators, simulatorString) {
if (! simulators.devices) {
null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
}
const ์žฅ์น˜ = simulators.devices;

SimulatorString = simulatorString.replace ( '_', '')

์˜ค๋Š˜์€ runIOS/findMatchingSimulator.js ์—์„œ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐ŸŽ‰ ๋ผ์ธ์„ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
...์—
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) {
isAvailable ์†์„ฑ์ด ์žฅ์น˜ ๋ชฉ๋ก์—์„œ YES / NO ๋Œ€์‹  ์ผ๋ฐ˜ ๋ถ€์šธ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ Xcode 11 ๋ฒ ํƒ€๋ฅผ ์„ค์น˜ ํ•œ ํ›„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI : 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ : 0.59.9

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜์—†๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์›์ธ : react-native run-ios๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ธฐ๋ณธ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ด๋ฆ„์€ iPhoneX์ด๋ฉฐ ์ „ํ˜€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. iPhoneX์˜ ์ด๋ฆ„์€ iPhoneXs, iPhoneXs Max ๋˜๋Š” iPhoneXR์ž…๋‹ˆ๋‹ค.
์†”๋ฃจ์…˜ : node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js์—์„œ ์ฝ”๋“œ ์ˆ˜์ •

// change this line
// it was if (simulator.name ===simulatorName && !match) {
if (simulator.name.includes(simulatorName) && !match) {
        match = {
          udid: simulator.udid,
          name: simulator.name,
          booted,
          version
        };
      } // Keeps track of the first available simulator for use if we can't find one above.

๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ์ „ํžˆ "react-native": "0.53.3"์„ ์‚ฌ์šฉํ•˜๋ฉฐ, react-native node_modules ํด๋”์˜ "findMatchingSimulator.js"์—์žˆ๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

if (version.indexOf('iOS') != 0) {
continue;
}

๋ฏฟ์„ ์ˆ˜ ์—†์–ด.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ
if (! version.includes ( 'iOS') &&! version.includes ( 'tvOS')) {
๊ณ„์†ํ•˜๋‹ค;
}

"com.apple.CoreSimulator.SimRuntime"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด startsWith์— ๋Œ€ํ•œ ์ˆœ์ˆ˜ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ
if (! version.includes ( 'iOS') &&! version.includes ( 'tvOS')) {
๊ณ„์†ํ•˜๋‹ค;
}

"com.apple.CoreSimulator.SimRuntime"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด startsWith์— ๋Œ€ํ•œ ์ˆœ์ˆ˜ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ด (๊ฐ€) ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ topik96 ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

์ฐธ๊ณ  : ์œ„์˜ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ํ•œ:

  1. ์ด ๋ช…๋ น ์‹คํ–‰ xcrun simctl list devices
  2. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ด๋ฆ„๊ณผ iOS ๋ฒ„์ „์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. (์ œ ๊ฒฝ์šฐ์—๋Š” 12.2์˜€์Šต๋‹ˆ๋‹ค)
  3. ์ด์ œ ๋‚ด ๋ช…๋ น์€ react-native run-ios --simulator='iPad Pro (9.7-inch) (12.2) . iOS ๋ฒ„์ „์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ด์ „์—๋Š” ์‹คํ–‰ ๋ช…๋ น์—์„œ iOS ๋ฒ„์ „์„ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ™•์ธ์€ ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผํ•ฉ๋‹ˆ๋‹ค.
Simulator.isAvailable! == true

๋‚ด ๋ฌธ์ œ๋Š” XCode 10.2.1 (๋‚˜์ฒ˜๋Ÿผ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Apple์ด iPhone XR ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์ด๋ฆ„์„ iPhone Xส€๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (ํฐ "R"๋Œ€ ์ž‘์€ "ส€"์— ์œ ์˜) ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœํ•˜๋Š” ๊ฒฝ์šฐ react-native run-ios --simulator="iPhone Xส€" . ๊ณ ๋งˆ์›Œ ์• ํ”Œ ...

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ
if (! version.includes ( 'iOS') &&! version.includes ( 'tvOS')) {
๊ณ„์†ํ•˜๋‹ค;
}

"com.apple.CoreSimulator.SimRuntime"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด startsWith์— ๋Œ€ํ•œ ์ˆœ์ˆ˜ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!, ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค!

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ
if (! version.includes ( 'iOS') &&! version.includes ( 'tvOS')) {
๊ณ„์†ํ•˜๋‹ค;
}
"com.apple.CoreSimulator.SimRuntime"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด startsWith์— ๋Œ€ํ•œ ์ˆœ์ˆ˜ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js ์ด (๊ฐ€) ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ๋œ React Native ๋ฒ„์ „์—์„œ ์ƒˆ CLI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€์‹  ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

์˜ค๋Š˜์€ runIOS/findMatchingSimulator.js ์—์„œ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐ŸŽ‰ ๋ผ์ธ์„ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค
if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
...์—
if (simulator.availability !== '(available)' && simulator.isAvailable !== true) {
isAvailable ์†์„ฑ์ด ์žฅ์น˜ ๋ชฉ๋ก์—์„œ YES / NO ๋Œ€์‹  ์ผ๋ฐ˜ ๋ถ€์šธ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ Xcode 11 ๋ฒ ํƒ€๋ฅผ ์„ค์น˜ ํ•œ ํ›„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

11 ๋ฒ ํƒ€๋„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ YES ์™€ true ์„ ๋™์‹œ์— ํ™•์ธํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์—ˆ๊ณ  ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐ์ฑ…์ด ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

console.log ์žฅ์น˜ ๋ฐ ํ•ดํ‚น ๋ฐ˜ํ™˜

findMatchingSimulator.js
if(match) {return match} ์ง์ „

๋ฐ˜ํ’ˆ์„ ํ•˜๋“œ ์ฝ”๋”ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  return {
    udid: 'BFBD0FA0-3104-4401-80BE-DC54CD7E3895',
    name: 'iPhone X',
    version: 'com.apple.CoreSimulator.SimRuntime.iOS-12-4'
  }

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋ณ€ํ–ˆ์„ ๋•Œ
if (! version.includes ( 'iOS') &&! version.includes ( 'tvOS')) {
๊ณ„์†ํ•˜๋‹ค;
}

"com.apple.CoreSimulator.SimRuntime"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ชฉ๋ก์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด startsWith์— ๋Œ€ํ•œ ์ˆœ์ˆ˜ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ฐ•. ์ด๊ฒƒ์€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ :

error Could not find "iPhone X" simulator. Run CLI with --verbose flag for more details.

์ด ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ๋‚ด ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ค๋ฅ˜ iPhone X ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ # 418์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

sed -i '' 's / startsWith / includes / g'node_modules / react-native / local-cli / runIOS / findMatchingSimulator.js

๋‚˜๋ฅผ ์œ„ํ•ด ๊ณ ์ณ์ฃผ์„ธ์š”.

๋‚˜๋ฅผ ์œ„ํ•ด ์•„๋ž˜ ๋‹จ๊ณ„ ์ˆ˜์ •์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ : 0.52.3

์ˆ˜์ •์€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

ํŒŒ์ผ ์—ด๊ธฐ
์ฝ”๋“œ ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

version.indexOf ( 'iOS') ๊ต์ฒด! == 0
! version.includes ( 'iOS')๋กœ

์ด ๋ฌธ์ œ๋Š” ์ง€๋‚œ 4 ๊ฐœ์›” ๋™์•ˆ RN์˜ ์„œ๋ฒ„ ๋ฒ„์ „์—์„œ ์ €์—๊ฒŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ์ข…์˜ ์—…๋ฐ์ดํŠธ ํ›„. ๋งค๋ฒˆ ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

Jim, RN ํ”„๋กœ์ ํŠธ ๋‚ด์— RN ํ”„๋กœ์ ํŠธ๊ฐ€ ์—†์Œ์„ ํ™•์ธ ํ–ˆ์Šต๋‹ˆ๊นŒ?
์‹œ์Šคํ…œ ํ˜„๋ช…ํ•œ)? ๊ทธ๋ ‡๋‹ค๋ฉด ํ•œ ํด๋” ๋‹น ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ์ด๊ฒŒ ๋ญ์•ผ
๋‚˜์—๊ฒŒ ์ผ์–ด ๋‚ฌ๊ณ  ๋‘ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋…๋ฆฝ ํด๋”๋กœ ์ œ๊ฑฐํ•œ ํ›„
(RN init ์‚ฌ์šฉ). ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

ํ† ์š”์ผ, 2019 ๋…„ 9 ์›” 21 ์ผ 18:28 Jim Hall [email protected] ์ž‘์„ฑ :

์ด ๋ฌธ์ œ๋Š” ์ง€๋‚œ 4 ๊ฐœ์›” ๋™์•ˆ ์ €์—๊ฒŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  RN์˜ ์„œ๋ฒ„ ๋ฒ„์ „์„ ํ†ตํ•ด. ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ์ข…์˜ ์—…๋ฐ์ดํŠธ ํ›„. ๊ทธ๊ฒƒ
๋งค๋ฒˆ ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

โ€”
๋Œ“๊ธ€์„ ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/facebook/react-native/issues/23282?email_source=notifications&email_token=ADA33H7VQA5DPUSQO6ILB6DQKY4TLA5CNFSM4GUBJ5D2YY3PNVWWK3TUL52HS4DFVREXG43VMVITH806JKQTissue5W2ZLOBW63LNMVITH806QW63LNMVITH806
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ADA33H56N5ML47724MTTPFTQKY4TLANCNFSM4GUBJ5DQ
.

iPhone X ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
-simulator="iPhone 11 Pro"

@ reza-hashemi์˜ ๊ด€์ฐฐ์„ ํ™•์ธํ•˜๊ณ  Xcode 11.0 (11A420a)์ด ์„ค์น˜๋œ instruments -s devices ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋” ์ด์ƒ IPhone X๊ฐ€ ๋‚˜์—ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --simulator ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์˜ xCode์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ iPhone X ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. xCode์— ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜์—ฌ ๋‹น๋ถ„๊ฐ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ CLI๋Š” iPhone 11์„ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Xcode 11๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
""iPhone X "์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

์‰ฌ์šด ์ˆ˜์ • ...

Xcode-> ํ™˜๊ฒฝ ์„ค์ •-> ๊ตฌ์„ฑ ์š”์†Œ๋Š” iOS 12.2 Sumulator ์„ค์น˜

@broros ๋‹จ๊ณ„๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” XCode ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„์— ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

error: Multiple commands produce '/ios/build/Debug-iphonesimulator/mobile.app/Zocial.ttf':
1) Target 'mobile' (project 'mobile') has copy command from '/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' to '/mobile/ios/build/Debug-iphonesimulator/mobile.app/Zocial.ttf'
2) That command depends on command in Target 'mobile' (project 'mobile'): script phase โ€œ[CP] Copy Pods Resourcesโ€

์ด ๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜ ์„ธํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด Xcode-> ํŒŒ์ผ-> ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •-> ๋นŒ๋“œ ์‹œ์Šคํ…œ-> (๋ ˆ๊ฑฐ์‹œ๋กœ ์„ค์ •)์—์„œ ios ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

Xcode๋ฅผ 10์—์„œ 11๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ 'iPhone X Simulator'์˜ค๋ฅ˜๋„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์™€ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์ฐพ์€ ๋ช‡ ๊ฐ€์ง€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹œ๋„ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์— ๊ฒฝ๊ณ ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ npm audit fix ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋ฅผ ์œ„ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ๊ณ  ์ด์ œ ๋ฌธ์ œ์—†์ด ๋ถ€ํŒ…๋ฉ๋‹ˆ๋‹ค.

xcode 11๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์„ค์น˜๋œ ์žฅ์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” xcrun simctl list --json devices ์˜ ์ถœ๋ ฅ์„ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
findMatchingSimulator์˜ ์ฝ”๋“œ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด์—์„œ

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

isAvailable์˜ ์ƒˆ ํ˜•์‹์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ด์ œ ์ผ๋ฐ˜ ๋ถ€์šธ ์ž„).

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

์ด๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

xcode 11๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์„ค์น˜๋œ ์žฅ์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” xcrun simctl list --json devices ์˜ ์ถœ๋ ฅ์„ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
findMatchingSimulator์˜ ์ฝ”๋“œ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด์—์„œ

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

isAvailable์˜ ์ƒˆ ํ˜•์‹์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ด์ œ ์ผ๋ฐ˜ ๋ถ€์šธ ์ž„).

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

์ด๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. findMatchingSimulator๊ฐ€ ์–ด๋”” ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @galkahana ,
๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
@TchernyavskyDaniil ํ”„๋กœ์ ํŠธ ํด๋” node_modules์—์„œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @galkahana ,
๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
@TchernyavskyDaniil ํ”„๋กœ์ ํŠธ ํด๋” node_modules์—์„œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
./node_modules/\@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

์˜๋ฏธ :
/ cli-platform-IOS / ...?

๊ธธ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (runIOS) : C

RN 60.4

@TchernyavskyDaniil ์ €๋Š” RN 0.59.9์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ํด๋”์˜ ๋ช…๋ น ์ค„์—์„œ find . -iname findMatchingSimulator.js ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฒฝ๋กœ์—์„œ @๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ์•ž์— ๋ฐฑ ์Šฌ๋ž˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  vim ๋˜๋Š” ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฝ๋‹ˆ ๋‹ค.

@TchernyavskyDaniil ์ €๋Š” RN 0.59.9์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ํด๋”์˜ ๋ช…๋ น ์ค„์—์„œ find . -iname findMatchingSimulator.js ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฒฝ๋กœ์—์„œ @๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ์•ž์— ๋ฐฑ ์Šฌ๋ž˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  vim ๋˜๋Š” ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฝ๋‹ˆ ๋‹ค.

๋„ค,
./node_modules/@react-native-community/cli-platform-ios/build/commands/runIOS/findMatchingSimulator.js

์ข‹์•„, ๋‚˜๋Š” ์‹œ๋„ ํ•  ๊ฒƒ์ด๋‹ค

""iPhone X "์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

ะธะทะพะฑั€ะฐะถะตะฝะธะต

์ข‹๋„ค์š” :)

XCode 11์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. God bless ์†Œํ”„ํŠธ์›จ์–ด ์—…๋ฐ์ดํŠธ!

@ react-native-community / cli๋ฅผ 1.9.8 https://github.com/react-native-community/cli/pull/414#issuecomment -499483963์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.

react-native --version
react-native-cli: 2.0.1
react-native: 0.59.8

@maxkomarychev @react-native-community/[email protected] ์„ (๋ฅผ) ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@galkahana ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ node_modules ์ˆ˜์ •์€ ํ”ผํ•ด์•ผํ•˜๋Š” ์น˜๋ช…์ ์ธ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์œ„ํ•ด PR์„ ์˜ฌ๋ ค์•ผํ•œ๋‹ค

  1. ์ปดํ“จํ„ฐ์— ์–ด๋–ค iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  2. react-native run-ios โ€”device=โ€œXXXXXXโ€™ ๋ฅผ ํ†ตํ•ด ํƒ€๊ฒŸํŒ…ํ•˜๋ ค๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ•ญ์ƒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

xcode์— iphone X ์žฅ์น˜๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

์ƒˆ๋กœ์šด ์ „ํ™” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ผ๋ถ€ ์˜ค๋ž˜๋œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ ์ตœ๊ทผ Xcode ์—…๋ฐ์ดํŠธ ์ดํ›„ ๋™์ผํ•œ ์˜ค๋ฅ˜ :

  1. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์‹œ์ž‘
  2. ๋ฉ”๋‰ด์—์„œ : ํ•˜๋“œ์›จ์–ด> ์žฅ์น˜> ์žฅ์น˜ ๊ด€๋ฆฌ
  3. "์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ"ํƒญ / ๋ฒ„ํŠผ์„ ์„ ํƒํ•œ ๋‹ค์Œ ์™ผ์ชฝ ํ•˜๋‹จ์˜ "+"๋ฅผ ํด๋ฆญํ•˜๊ณ  ์‹คํ–‰ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋ฆ„ ํ•„๋“œ๋ฅผ ์ฑ„์šฐ์ง€ ๋งˆ์‹ญ์‹œ์˜ค).

์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ...

์œ„์˜ @dmurchie ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ ํ•œ ํ›„์—๋„ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด @react-native-community/cli ๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์žˆ๋Š” ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/react-native-community/cli#updating -the-cli

xcode 11๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์„ค์น˜๋œ ์žฅ์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” xcrun simctl list --json devices ์˜ ์ถœ๋ ฅ์„ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
findMatchingSimulator์˜ ์ฝ”๋“œ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด์—์„œ

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

isAvailable์˜ ์ƒˆ ํ˜•์‹์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ด์ œ ์ผ๋ฐ˜ ๋ถ€์šธ ์ž„).

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

์ด๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ฐ•. ์ด๊ฒƒ์€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ์š”

@TchernyavskyDaniil ๋‹น์‹ ์€ ๋‚ด ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. Tks ๋„ˆ๋ฌด ๋งŽ์ด!
RN 0.58.3
Xcode 11
์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

  1. ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ ํŒŒ์ผ์—์„œ :
    code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
  2. ๋ฐ”๊พธ๋‹ค
    version.indexOf ( 'iOS')! == 0
    ...์—
    ! version.includes ( 'iOS')

๋ฐ”๊พธ๋‹ค
Simulator.availability! == '(์‚ฌ์šฉ ๊ฐ€๋Šฅ)'
...์—
Simulator.availability! == '(์‚ฌ์šฉ ๊ฐ€๋Šฅ)'&&
Simulator.isAvailable! == '์˜ˆ'&&
Simulator.isAvailable! == true

  1. react-native run-ios
    ๊ธฐ๋ณธ์ ์œผ๋กœ React Native๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ iPhone 11 Pro Max๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    ํ˜„์žฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ชฉ๋ก๋ณด๊ธฐ :
    xcrun simctl list devices
    ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    react-native run-ios --configuration Debug --simulator='Your simulator' --scheme 'Your Scheme'
    ์˜ˆ
    react-native run-ios --configuration Debug --simulator='iPhone 11 Pro Max' --scheme 'HelloWorld'

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜.

# to find what simulators you have
xcrun simctl list

# to run a specific simulator
rn run-ios --simulator "iPhone 11"

xcode 11๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์„ค์น˜๋œ ์žฅ์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” xcrun simctl list --json devices ์˜ ์ถœ๋ ฅ์„ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
findMatchingSimulator์˜ ์ฝ”๋“œ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด์—์„œ

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

isAvailable์˜ ์ƒˆ ํ˜•์‹์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ด์ œ ์ผ๋ฐ˜ ๋ถ€์šธ ์ž„).

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

์ด๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ์œ„ํ•œ ์ผ์ž…๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š”,

node_modules ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

  1. react-native ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ (command : react-native init projectName)
  2. Xcode 11์—์„œ projectName / ios / projectName.xcodeproj ํŒŒ์ผ ์—ด๊ธฐ
  3. ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ธฐ๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค (iPhone Pro๋ฅผ ์ถœ์‹œ ํ•œ ํ›„ ๋” ์ด์ƒ ๋ชฉ๋ก์—์—†๋Š” iPhone X์ด๋ฏ€๋กœ ๋”ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ํ˜„์žฌ ๊ธฐ๊ธฐ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค).
  4. ๋ชฉ๋ก์— ์ƒˆ ์žฅ์น˜๊ฐ€ ์žˆ์œผ๋ฉด Xcode 11์„ ๋‹ซ๊ณ  ํ„ฐ๋ฏธ๋„์—์„œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ iOS).

์Šคํฌ๋ฆฐ ์ƒท์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ  github์˜ ์ฒซ ๋ฒˆ์งธ ์˜๊ฒฌ์ด๋ฏ€๋กœ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค :)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ilkinnamazov ์†”๋ฃจ์…˜์˜ ์Šคํฌ๋ฆฐ ์ƒท์„ ๋ณด๋‚ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ios ํด๋”์—์„œ .xcodeproj ํŒŒ์ผ์„ ์—ด๋ฉด Xcode IDE๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ๊ฑฐ๊ธฐ์—์„œ ํŠน์ • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜ ์Šคํฌ๋ฆฐ ์ƒท์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ๋ชฉ๋ก์—์„œ ์žฅ์น˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1
3

๊ทธ๋Ÿฌ๋‚˜ iPhone X๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‰ฝ๊ฒŒ ์žฅ์น˜ ๋ชฉ๋ก์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2
4
5
6

์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.
๊ฐ์‚ฌ.

XCode์—์„œ iPhone X ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ํ•œ ํ›„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

  1. node_modules ์‚ญ์ œ
  2. yarn.lock ๋˜๋Š” package-lock.json ์‚ญ์ œ
  3. yarn ๋˜๋Š” npm install

XCode์—์„œ iPhone X ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ํ•œ ํ›„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

  1. node_modules ์‚ญ์ œ
  2. yarn.lock ๋˜๋Š” package-lock.json ์‚ญ์ œ
  3. yarn ๋˜๋Š” npm install

์ž ๊ธˆ ํŒŒ์ผ ์‚ญ์ œ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ

ํŠน์ • ์žฅ์น˜๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ชฉ๋ก์— ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

1) Xcode ์—ด๊ธฐ
2) Command+Shift+2 ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์žฅ์น˜ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์˜ต์…˜์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.
3) ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํƒญ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์™ผ์ชฝ ํ•˜๋‹จ์˜ + ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๊ณ  ์›ํ•˜๋Š” iPhone X ๋˜๋Š” ๋ˆ„๋ฝ ๋œ ์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

์ด ์†”๋ฃจ์…˜์„ ์นœ์ ˆํ•˜๊ฒŒ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์„ ์œ„ํ•ด ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/facebook/react-native/issues/24450#issuecomment -516760157

๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ์ผ๋ถ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@danielcampo ์˜ CLI ์—…๊ทธ๋ ˆ์ด๋“œ ์ œ์•ˆ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋‚ด package.json์— ์ถ”๊ฐ€ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.
"@react-native-community/cli": "@^1.12.0", ์–ด๋–ค ์ด์œ ๋กœ ๋“  ์ž ๊ธˆ ์žฅ์น˜๊ฐ€์—†๋Š” ๊ฒฝ์šฐ ๋ถ™์—ฌ ๋„ฃ๊ธฐ 1.11.2๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด์ œ ๋ฌธ์ œ์—†์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

xcode 11๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์„ค์น˜๋œ ์žฅ์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” xcrun simctl list --json devices ์˜ ์ถœ๋ ฅ์„ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
findMatchingSimulator์˜ ์ฝ”๋“œ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด์—์„œ

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

isAvailable์˜ ์ƒˆ ํ˜•์‹์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์ด์ œ ์ผ๋ฐ˜ ๋ถ€์šธ ์ž„).

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

์ด๊ฒƒ์œผ๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค! ๊ณ ๋งˆ์›Œ์š”!

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•˜๊ธฐ ์œ„ํ•ด findMatchingSimulator.js ํŒŒ์ผ์„ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด ํ˜„์žฌ ๋‹ค์Œ ๊ฒฝ๋กœ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
node_modules/@react-native-community/cli/build/commands/runIOS/findMatchingSimulator.js

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

๋˜ํ•œ ๊ด„ํ˜ธ ์•ˆ์— IOS ๋ฒ„์ „์„ ์ „๋‹ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

--simulator "iPhone 11 Pro Max (13.2)"

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ

react-native-cli: 2.0.1
react-native: 0.61.5

๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ "iPhone X"๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
react-native run-ios --simulator='iPhone XR' ๋˜๋Š” ๊ธฐํƒ€๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋งค๋ฒˆ iPhone X๊ฐ€ ์ถœ์‹œ ๋  ๋•Œ๋งˆ๋‹ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰