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')) {
์ด์ ๋ฒ์ ์ React Native๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ต์ ๋ฆด๋ฆฌ์ค v0.58๋ก ์ ๋ฐ์ดํธํ๊ณ ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋์ง ํ์ธํ์ญ์์ค.
์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์ react-native info
๋ฅผ ์คํ ํ ๊ฒฐ๊ณผ๋ก ์๋ณธ ๊ฒ์๋ฌผ์ ํธ์งํ๋ฉด "ํด๊ฒฐ : ์ด์ ๋ฒ์ "๋ ์ด๋ธ์ด ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.
๋ค์์ผ๋ก ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์๋ํ์ต๋๋ค.
๋ฐ์ ๋ค์ดํฐ๋ธ : 0.58.3 => 0.58.3
๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๋ฌธ์
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
์ฐธ๊ณ : ์์ ์์ ์ฌํญ์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์ง ์์์ต๋๋ค. ์ ๊ฐ ํ:
xcrun simctl list devices
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์ ์ฌ๋ ค์ผํ๋ค
- ์ปดํจํฐ์ ์ด๋ค iOS ์๋ฎฌ๋ ์ดํฐ๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ ์ ์์ต๋๊น?
react-native run-ios โdevice=โXXXXXXโ
๋ฅผ ํตํด ํ๊ฒํ ํ๋ ค๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ํญ์ ์ ๋ฌํ ์ ์์ต๋๋ค.
xcode์ iphone X ์ฅ์น๋ฅผ ์ค์นํ์ญ์์ค.
์๋ก์ด ์ ํ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ผ๋ถ ์ค๋๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ๊ฑฐํ ์ต๊ทผ Xcode ์ ๋ฐ์ดํธ ์ดํ ๋์ผํ ์ค๋ฅ :
์ด๊ฒ์ด ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค ...
์์ @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
์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์๋ ๋จ๊ณ์ ๋ฐ๋ผ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ญ์์ค.
code ./node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
๋ฐ๊พธ๋ค
Simulator.availability! == '(์ฌ์ฉ ๊ฐ๋ฅ)'
...์
Simulator.availability! == '(์ฌ์ฉ ๊ฐ๋ฅ)'&&
Simulator.isAvailable! == '์'&&
Simulator.isAvailable! == true
react-native run-ios
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 ๋๋ ํ ๋ฆฌ์์ ์์ค ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ค๋ฅธ ์๋ฃจ์ ์ ์ฐพ์์ต๋๋ค.
์คํฌ๋ฆฐ ์ท์ด ํ์ํ๋ฉด ์๋ ค์ฃผ์ธ์.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ github์ ์ฒซ ๋ฒ์งธ ์๊ฒฌ์ด๋ฏ๋ก ์ถํํฉ๋๋ค :)
๊ฐ์ฌํฉ๋๋ค.
@ilkinnamazov ์๋ฃจ์ ์ ์คํฌ๋ฆฐ ์ท์ ๋ณด๋ด ์ฃผ์๊ฒ ์ต๋๊น?
ios ํด๋์์ .xcodeproj ํ์ผ์ ์ด๋ฉด Xcode IDE๊ฐ ์์๋๊ณ ๊ฑฐ๊ธฐ์์ ํน์ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์๋ ์คํฌ๋ฆฐ ์ท์ ์ฐธ์กฐํ์ญ์์ค.
์ด ๋ชฉ๋ก์์ ์ฅ์น๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ iPhone X๊ฐ ํ์๋์ง ์๋ ๊ฒฝ์ฐ ์ฝ๊ฒ ์ฅ์น ๋ชฉ๋ก์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
์ง๋ฌธ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
๊ฐ์ฌ.
XCode์์ iPhone X ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ถ๊ฐ ํ ํ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ
yarn
๋๋ npm install
XCode์์ iPhone X ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ถ๊ฐ ํ ํ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ
- node_modules ์ญ์
- yarn.lock ๋๋ package-lock.json ์ญ์
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๊ฐ ์ถ์ ๋ ๋๋ง๋ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
์ค์if (!version.startsWith('iOS')
.๋๋ ๊ทธ๊ฒ์
includes
๋ก ๋์ฒดํ๋ค :if (!version.includes('iOS')
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ๊ฒ ๊ฐ๋ค.