React-native: ์ตœ์‹  ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ":CFBundleIdentifier", ์กด์žฌํ•˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2016๋…„ 04์›” 30์ผ  ยท  294์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react-native

OS X El Capitan v10.11.4์—์„œ

๋…ธ๋“œ --๋ฒ„์ „ v6.0.0
npm --v 3.8.8
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 0.2.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.24.1
ํŒŒ์ˆ˜๊พผ --v 4.4.0
์—‘์Šค์ฝ”๋“œ 7.3

$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” AwesomeProject
$ cd ์–ด์ธํ”„๋กœ์ ํŠธ
$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐ-ios

** BUILD FAILED **


The following build commands failed:
    PhaseScriptExecution Run\ Script /development/misc/react/AwesomeProject/ios/build/Build/Intermediates/React.build/Debug-iphonesimulator/React.build/Script-006B79A01A781F38006873D1.sh
(1 failure)
Installing build/Build/Products/Debug-iphonesimulator/AwesomeProject.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
/development/misc/react/AwesomeProject/node_modules/promise/lib/done.js:10
      throw err;
      ^

Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

    at checkExecSyncError (child_process.js:470:13)
    at Object.execFileSync (child_process.js:490:13)
    at _runIOS (runIOS.js:91:34)
    at runIOS.js:24:5
    at tryCallTwo (/development/misc/react/AwesomeProject/node_modules/promise/lib/core.js:45:5)
    at doResolve (/development/misc/react/AwesomeProject/node_modules/promise/lib/core.js:200:13)
    at new Promise (/development/misc/react/AwesomeProject/node_modules/promise/lib/core.js:66:3)
    at Array.runIOS (runIOS.js:23:10)
    at Object.run (/development/misc/react/AwesomeProject/node_modules/react-native/local-cli/cli.js:86:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:88:7)

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

์•„์ง... ๋“œ๋””์–ด ์ƒˆ ๋งฅ์„ ์‚ฌ์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๋‹น์‹ ์ด StackOverflow์—๋„ ๊ฒŒ์‹œํ•œ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์šด์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? master ์„(๋ฅผ) ๊ฐ€์ง€๊ณ  ๋†€๊ณ  ์žˆ๋Š”๋ฐ ์žฌ์ƒ์‚ฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. sudo ๋˜๋Š” ๊ถŒํ•œ๊ณผ ๊ฐ™์ด ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Info.plist ์— CFBundleIdentifier $#$ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์‚ญ์ œํ•˜๊ณ  ์บ์‹œ ๋“ฑ์„ ์ง€์šฐ๊ณ  ์šด๋„ ์—†์ด sudo๋ฅผ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. Info.plist์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด CFBundleIdentifier๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

<key>CFBundleIdentifier</key>
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>

@grabbou ๋…ธ๋“œ 6์œผ๋กœ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€ ๋…ธ๋“œ 4 & 5๋กœ๋งŒ ์‹œ๋„ํ–ˆ๊ณ  ์•„์ง 6์„ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ฑฐ๊ธฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹๊นŒ์š”?

@dsibiski ์ด์ „์— ๋…ธ๋“œ 5.9๊ฐ€ ์žˆ์—ˆ๊ณ  ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. node/npm์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค(๋‚ด ์ปดํ“จํ„ฐ์— ๋…ธ๋“œ 6์ด ์žˆ๋Š” ๊ฒฝ์šฐ). ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์œ„์˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋„ ๋น„์Šทํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

OS X El Capitan v10.11.4์—์„œ

๋…ธ๋“œ --๋ฒ„์ „ v6.0.0
npm --v 3.8.6
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 0.2.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.24.1
ํŒŒ์ˆ˜๊พผ --v 4.4.0
์—‘์Šค์ฝ”๋“œ 7.3

$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” AwesomeProject
$ cd ์–ด์ธํ”„๋กœ์ ํŠธ
$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐ-ios

* ๋นŒ๋“œ ์„ฑ๊ณต *

๋‹ค์Œ ๋ช…๋ น์€ ๋ถ„์„๊ธฐ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“ˆ/RCTUIManager.m ๋ถ„์„
(๋ถ„์„๊ธฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋ช…๋ น 1๊ฐœ)
build/Build/Products/Debug-iphonesimulator/AwesomeProject.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
/Users/shinout/workspace/AwesomeProject/node_modules/promise/lib/done.js:10
์˜ค๋ฅ˜๋ฅผ ๋˜์ง€๋‹ค;
^^

Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

    at checkExecSyncError (child_process.js:470:13)
    at Object.execFileSync (child_process.js:490:13)
    at _runIOS (runIOS.js:91:34)
    at runIOS.js:24:5
    at tryCallTwo (/Users/shinout/workspace/AwesomeProject/node_modules/promise/lib/core.js:45:5)
    at doResolve (/Users/shinout/workspace/AwesomeProject/node_modules/promise/lib/core.js:200:13)
    at new Promise (/Users/shinout/workspace/AwesomeProject/node_modules/promise/lib/core.js:66:3)
    at Array.runIOS (runIOS.js:23:10)
    at Object.run (/Users/shinout/workspace/AwesomeProject/node_modules/react-native/local-cli/cli.js:86:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:88:7)

์ œ ๊ฒฝ์šฐ์—๋Š” BUILD๊ฐ€ ์„ฑ๊ณตํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค... XCode ๋นŒ๋“œ๋กœ๋งŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ช…์„ ๋ณ€๊ฒฝํ•ด์„œ ๋‚˜์˜จ ๊ฒƒ ๊ฐ™์•„์š”.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! ํฌํŠธ 8081์ด ์‚ฌ์šฉ ์ค‘์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

lsof -n -i4TCP:8081
node    7601 CXI624   23u  IPv6 0xc6b249599e5f1169      0t0  TCP *:sunproxyadmin (LISTEN)

๊ทธ๋ž˜์„œ ๋‚˜๋Š” React Native Troubleshooting https://facebook.github.io/react-native/docs/troubleshooting.html ์˜ ์ง€์นจ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

kill - 9 7601

react-native run-ios ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค(๋…ธ๋“œ 6์—์„œ๋„).

์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@arun0009 ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค, ์—ฌ๊ธฐ์— ๋‹ต๋ณ€์„ ๋‹ค์‹œ ๊ฒŒ์‹œํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘

@shinout ์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ ํ•ด๊ฒฐํ•˜์…จ๋‚˜์š”?

์•„์ง... ๋“œ๋””์–ด ์ƒˆ ๋งฅ์„ ์‚ฌ์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

react-native upgrade ๋ช…๋ น์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ ๋‹ค์–‘ํ•œ xcode ํŒŒ์ผ์˜ ์ผ๋ถ€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์žฌ์„ค์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๊ทธ๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ 5.11

์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํฌํŠธ 8081์—์„œ ์ข…๋ฃŒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 0.2.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.26.2
๋…ธ๋“œ: 5.3.0
npm: 3.3.12

๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
$ react-native init newProj && cd newProj
$ react-native run-ios

๋‹ค์Œ์„ ์ž…๋ ฅํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์ง€๋งŒ "๋ถ€ํŒ…๋œ ์žฅ์น˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค"..

sudo react-native run-ios

8081์—์„œ ๋‹ค๋ฅธ ๋ฐ˜์‘ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

sudo๋กœ ์‹คํ–‰ํ•ด๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@consideRatio ์˜ ์ œ์•ˆ ์†”๋ฃจ์…˜์ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

react-native upgrade

XCode๋ฅผ 7.3.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ž‘๋™

๋ถˆํ–‰ํžˆ๋„ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œ ๋œ ๊ฒƒ์€ ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค :(

์ œ ๊ฒฝ์šฐ์—๋Š” ProductName์ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„, ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ์Šคํ‚ค๋งˆ ์ด๋ฆ„ ๋ฐ ์ œํ’ˆ ์ด๋ฆ„์„ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ๊ณ  ๊ทธ ํ›„์— ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด CFBundleIdentifier(๋˜๋Š” Xcode์—์„œ Info.plist๋ฅผ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ "๋ฒˆ๋“ค ์‹๋ณ„์ž")์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Info.plist์— ๊ฐ”์„ ๋•Œ ๋‹ค์Œ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
com.{ํšŒ์‚ฌ}.mobile.$(PRODUCT_NAME:rfc1034์‹๋ณ„์ž)
๊ทธ๋ž˜์„œ ๊ธธ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ Xcode์—์„œ ์กฐ์‚ฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์™ผ์ชฝ ์ฐฝ์—์„œ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ํด๋ฆญํ•˜๊ณ  BuildSettings๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ProductName์„ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋Œ€์‹  "MyAwesomeApp"์ด "MyAwesomeAppApp"๊ณผ ๊ฐ™์€ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜์‹ญ์‹œ์˜ค. ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์€ ๋‘ ๋ฒˆ ๋ฐ˜๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งํ•  ํ•„์š”๋„ ์—†์ด Xcode์— ์ €์žฅ๋œ ๋‚ด ProjectName(MyAwesomeApp)๊ณผ ์ผ์น˜ํ•˜๋„๋ก ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐ-ios

๋ฌธ์ œ์—†์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์ด์œ ๊ฐ€ ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
"์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค."
"๊ฒฝ๋กœ"๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค!
๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•œ ํšŸ์ˆ˜์— ๊ด€๊ณ„์—†์ด ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•ญ์ƒ ํฌํŠธ 8081์„ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•ด ๋ณด์‹ญ์‹œ์˜ค.

http://stackoverflow.com/questions/30216417/react-native-port-8081-already-in-use-packager-is-either-not-running-or-not-r

๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ํ‹ฐ์ผ“์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ Entry, ":CFBundleIdentifier", Does Not Exist ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚œ ๋…ธ๋ ฅ ํ–ˆ์–ด:

  • ํฌํŠธ 8081์—์„œ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ
  • ํฌํŠธ ๋ณ€๊ฒฝ
  • sudo๋กœ ์‹คํ–‰
  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๋ฐ์ดํŠธ (์ €๋Š” ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค)

๋‹ค๋ฅธ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ XCode์—์„œ .xcworkspace ๋ฅผ ์—ด๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ๊ฒƒ์€ XCode์—์„œ ์—ด๊ณ  ๊ณ„ํš์„ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ์—์„œ ๋””๋ฒ„๊ทธ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์„์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ™•์‹คํžˆ ํ™•์ธํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋ณ€๊ฒฝํ•œ ํ›„ ๋ช…๋ น์ค„์„ ํ†ตํ•ด react-native run-ios ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@joshschumacher ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๊ฒƒ๋„ ์ˆ˜์ •๋˜์ง€ ์•Š์œผ๋ฉด Xcode๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

  1. ํŒŒ์ผ -> ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ ๊ธ‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค
  3. "Custom"์„ ์„ ํƒํ•˜๊ณ  ํ’€๋‹ค์šด์—์„œ "Relative to Workspace"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ํด๋ฆญ ์™„๋ฃŒ, ์™„๋ฃŒ

@ stief510 ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌ ํ•ด์š”!

@gvlamadrid ๊ฐ€ ๋งํ–ˆ๋“ฏ์ด

์•„๋ฌด๊ฒƒ๋„ ์ˆ˜์ •๋˜์ง€ ์•Š์œผ๋ฉด Xcode๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

  1. ํŒŒ์ผ -> ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ ๊ธ‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค
  3. "Custom"์„ ์„ ํƒํ•˜๊ณ  ํ’€๋‹ค์šด์—์„œ "Relative to Workspace"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ํด๋ฆญ ์™„๋ฃŒ, ์™„๋ฃŒ

5 pic

์•„๋ฌด๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

์ €๋ฅผ ์œ„ํ•ด ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(ํฌํŠธ๋ฅผ ์ฃฝ์ด๊ณ  ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ๋“ฑ).

๋‚˜์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ v6.2.2 ์‚ฌ์šฉ

๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž˜ํ–ˆ์–ด, ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ˜์‘...

@trevorwang ๋•๋ถ„ ์— ์ €์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” ๋˜ํ•œ ํฌํŠธ 8081์—์„œ ์‹คํ–‰์ค‘์ธ ๊ฒƒ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ( sudo lsof -n -i4TCP:8081 ์‹คํ–‰ํ•˜์—ฌ ๋ฐœ๊ฒฌ)

$ react-native init react-native init --version 0.27 ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ด์ „ ๋ฒ„์ „์˜ react-native๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฌ๊ธฐ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ appdelegate.m ํŒŒ์ผ๊ณผ React.xcodeproj ๋ฐ RCTWebSocketExecutor.m์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ react-native ios-run ๋Œ€์‹  npm start -- --port 5000 ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ โŒ˜+R ์„ ์‚ฌ์šฉํ•˜์—ฌ Xcode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์Œ, ์ด ๋ฌธ์ œ๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์— ๋Œ€ํ•œ ์ƒ์œ„ Google ๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค("๋ถ€ํŒ…๋œ ์žฅ์น˜ ์—†์Œ"). ์ด๊ฒƒ์ด ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์—ฌ์ „ํžˆ ๋‚จ์•„ ์žˆ๋Š” ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - YMMV.

์ด๊ฒƒ์€ ์ƒ๊ณ„๋ฅผ ์œ„ํ•ด iOS ์ž‘์—…์„ ํ•  ๋•Œ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ข…์ข… ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์ง€์˜ฅ์ฒ˜๋Ÿผ ๋ถˆ์•ˆ์ •ํ•ฉ๋‹ˆ๋‹ค. ps aux | grep Simulator ๋Š” ๋ณดํ†ต ์ด๋ฏธ ์ฃฝ์—ˆ์–ด์•ผ ํ•  ๋ฌด์–ธ๊ฐ€๋ฅผ ๋‚˜์—๊ฒŒ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

  1. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ/๋””๋ฒ„๊ทธ ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
  2. ps aux | grep Simulator ๋˜๋Š” ์„ ํ˜ธํ•˜๋Š” ์‰˜ ๋งˆ๋ฒ•์ด ๋ฌด์—‡์ด๋“  ๊ฐ„์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ข…๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒƒ์ด ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ๋‹ค๋ฉด kill ์ž…๋‹ˆ๋‹ค.
  3. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ/๋””๋ฒ„๊ทธ ์„œ๋ฒ„/๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค( react-native run-ios ). ์—ฌ์ „ํžˆ "๋ถ€ํŒ…๋œ ์žฅ์น˜ ์—†์Œ" ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด(์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ๊ฒ€์€์ƒ‰ ํ™”๋ฉด์ž„) Hardware -> Reboot ๋ฅผ ํ†ตํ•ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ์žฌ๋ถ€ํŒ…ํ•œ ๋‹ค์Œ ์•ฑ์„ ์—ฝ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํฌํŠธ 8081์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ•ญ๋ชฉ์ด ์—†์œผ๋ฉด ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์›น์—์„œ ์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ๊ฐ€์žฅ ๋งŽ์€ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋Š” ๊ฑฐ์˜ ๋งค๋ฒˆ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Info.plist ์—์„œ NSAppTransportSecurity ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ด ํ•ญ๋ชฉ์ด ์—‰๋ง์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@joshschumacher ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

react-native upgrade ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๊ณ  8081์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ react-native run-ios ์— ์˜ํ•ด ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์— ํฌํŠธ 8081์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
RCTSRWebSocket.m์˜ SecRandomCopyBytes -> (void)SecRandomCopyBytes
๊ทธ๋Ÿฐ ๋‹ค์Œ react-native run-ios ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@ stief510 ์†”๋ฃจ์…˜์€ ์ •ํ™•ํžˆ ๋‚˜๋ฅผ ์œ„ํ•ด ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. xcode์—์„œ Product Scheme ํ”Œ๋ผ์ด์•„์›ƒ ๋ฉ”๋‰ด์—์„œ ํ•˜๋‹จ์„ ๋ณด๋ฉด Edit ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํด๋ฆญํ•˜์„ธ์š”. ๋ชจ๋‹ฌ ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ๊ตฌ์„ฑ์—๋Š” ์„ ํƒ ์ƒ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Debug ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ๊ณ ์ณค๋‹ค.

๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•œ ํ›„์— ์ž‘๋™ํ•œ @stief510 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋ƒฅ npm install react-native-cli<strong i="5">@latest</strong> -g ํ•˜๋ฉด react-native run-ios ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

npm install react<strong i="5">@latest</strong> react-native@latest , xcode 7.x๋ฅผ 8.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

react-native upgrade ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ios๋ฅผ macsierra๋กœ, xcode๋ฅผ 8.0์œผ๋กœ, ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ํฌํŠธ๋ฅผ ๋‹ซ๊ณ , react-native๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ตœ์‹  cli๊ฐ€ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋นŒ๋“œ ๋ช…๋ น์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
RCTVibration.m ๋ถ„์„
(1 ์‹คํŒจ)
build/Build/Products/Debug-iphonesimulator/AwesomeProject.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์‹คํŒจ: /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์•„์ด๋””์–ด?

์ด๊ฒƒ์„ ๋‹ค์‹œ ์—ฌ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์ด๊ฒƒ์€ F8 ์•ฑ๊ณผ Hacker ๋‰ด์Šค ์˜ˆ์ œ ์•ฑ ๋ชจ๋‘์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ์— React Native๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๊ฐ„์ ˆํžˆ ์›ํ•˜์ง€๋งŒ ์ด ๋ฒ„๊ทธ๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ๊ฐ€๋กœ๋ง‰๊ณ  ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ๋„์ค‘์— ๋ฐœ์ƒํ•  ๊ฒƒ์„ ๋‘๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์„ค์ • :
๋งˆ์ฝ”์Šค ์‹œ์—๋ผ 10.12
xcode: ๋ฒ„์ „ 8.0(8A218a)
npm: 3.10.3
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "^0.20.0",
"react-native-gifted-listview": "0.0.12",
"react-native-scrollable-tab-view": "^0.3.8",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒกํ„ฐ ์•„์ด์ฝ˜": "^1.2.1",
"react-native-activity-view": "^0.2.5"

๋‹ค์Œ ๋ช…๋ น์€ ๋ถ„์„๊ธฐ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
RCTImageLoader.m ๋ถ„์„
(๋ถ„์„๊ธฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋ช…๋ น 1๊ฐœ)

๋‹ค์Œ ๋นŒ๋“œ ๋ช…๋ น์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
CompileC /Users/xx/Downloads/HackerNews-React-Native-master/ios/build/Build/Intermediates/RCTWebSocket.build/Debug-iphonesimulator/RCTWebSocket.build/Objects-normal/x86_64/RCTSRWebSocket.o RCTSRWebSocket.m normal x86_64 Objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 ์‹คํŒจ)
build/Build/Products/Debug-iphonesimulator/HN Reader.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
/Users/xx/Downloads/HackerNews-React-Native-master/node_modules/promise/lib/done.js:10
์˜ค๋ฅ˜๋ฅผ ๋˜์ง€๋‹ค;
^^

์˜ค๋ฅ˜: ๋ช…๋ น ์‹คํŒจ: /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/HN Reader.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

at checkExecSyncError (child_process.js:475:13)
at Object.execFileSync (child_process.js:495:13)
at _runIOS (runIOS.js:77:34)
at runIOS.js:24:5
at tryCallTwo (/Users/xx/Downloads/HackerNews-React-Native-master/node_modules/promise/lib/core.js:45:5)
at doResolve (/Users/xx/Downloads/HackerNews-React-Native-master/node_modules/promise/lib/core.js:200:13)
at new Promise (/Users/xx/Downloads/HackerNews-React-Native-master/node_modules/promise/lib/core.js:66:3)
at Array.runIOS (runIOS.js:23:10)
at Object.run (/Users/xx/Downloads/HackerNews-React-Native-master/node_modules/react-native/local-cli/cli.js:86:13)
at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:88:7)

@alanlavintman ๋งˆ์นจ๋‚ด ๋‹น์‹ ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ ์‹œ์ ์—์„œ ๋ฌธ์ œ๋Š” AwesomeProject.app์ด ์ž˜๋ชป๋œ ์œ„์น˜์— ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €์—๊ฒŒ๋Š” NativeStarterKit.App์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์œ„์น˜์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ios/build/Products/Debug-iphonesimulator/NativeStarterKit.app
๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค :
ios/build/Build/Products/Debug-iphonesimulator/NativeStarterKit.app

@gavinxyang ์œ„์˜ ๋ฌธ์ œ ๋˜๋Š” ์•„๋ž˜์˜ ๋‹ค์„ฏ ๋ฒˆ์งธ ๊ธ€๋จธ๋ฆฌ ๊ธฐํ˜ธ๊ฐ€ ๊ท€ํ•˜์˜ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "๋ช…๋ น ์‹คํŒจ" ์˜ค๋ฅ˜์— ๋ณด๊ณ ๋œ ๊ฒฝ๋กœ๊ฐ€ "HN Reader ์•ฑ"์— ๋Œ€ํ•ด ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์‹  ๋นŒ๋“œ/์ œํ’ˆ ํด๋”์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์‹œ์ ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ์ „์— ํ•œ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ์ฃผ ํ”„๋กœ์ ํŠธ์— Product Name Identifier๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ์€ 1๊ฐœ์˜ ์˜ค๋ฅ˜์— ๋„์›€์ด ๋จ).
  • ์ถ”๊ฐ€ Custom Compiler Flags๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค)
  • @gvlamadrid ์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๊ฒฝ๋กœ๋ฅผ ์ƒ๋Œ€์ ์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(์ด๋Š” 1๊ฐœ์˜ ์˜ค๋ฅ˜์— ๋„์›€์ด ๋จ).
  • NVM์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ Packager์™€ ํ•จ๊ป˜ ํŒ์—…๋˜๋Š” ํ„ฐ๋ฏธ๋„ ์ฐฝ์ด NodeJS์˜ ๊ธฐ๋ณธ OS ๋ฒ„์ „์„ ์ƒ์†ํ•˜๊ณ  ์‹คํŒจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ OS NodeJS ๋ฒ„์ „์„ ์—ฌ์ „ํžˆ 0.10.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋˜ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๋Š” ๋‚˜๋ฅผ ๋‹นํ™ฉํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
    ios/build/Products/debug-iphonesimulator/NativeStarterKitTests.xctest.DSYM .DSYM์€ ์–ด๋””์—์„œ ์™”์Šต๋‹ˆ๊นŒ? ํ•ด๋‹น ํ™•์žฅ์œผ๋กœ ๊ณ„์† ์žฌ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์—์„œ .DSYM์„ ์ œ๊ฑฐํ•˜๋ฉด ํฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํฌํŠธ 8081์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด์ œ ์•ฑ์—์„œ JS ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์ ์–ด๋„ ๋ชจ๋“  ๊ฒƒ์ด ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค. "๋ช…๋ น ์‹คํŒจ"์™€ ํ•จ๊ป˜ ๋‚˜์—ด๋œ ์˜ค๋ฅ˜๋ฅผ ๋”ฐ๋ฅด๋ฉด ์‹ค์ œ๋กœ ์ค‘๋‹จ์„ ์ผ์œผํ‚ค๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ด์ „์˜ ๋ชจ๋“  ์ˆ˜์ • ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋ฉˆ์ถ˜ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ XCode 8.0์ด ์ฃผ๋ณ€์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์—ฌ์ „ํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ์„ธ๋ถ€์ •๋ณด:
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 1.0.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.31.0
๋…ธ๋“œ: 6.6.0
npm: 3.10.3
์—‘์Šค์ฝ”๋“œ: 8.0
๋งฅ OSX: ์—˜ ์บํ”ผํƒ„ 10.11.6

3-4์‹œ๊ฐ„์˜ ๋””๋ฒ„๊น… ํ›„์— ๋งˆ์นจ๋‚ด ์ž‘๋™ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋Œ์•„๊ฐ€์„œ NativeStarterKit์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์„ ๋•Œ ์›๋ž˜ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๋ฅผ ๋˜์กŒ๋˜ ํŽ˜ํผ๋กœ๋‹ˆ๋กœ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, dmitrye@!

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
1) ์‚ฌ์šฉ์ž ์ง€์ • ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ RCTScrollView.o๋ฅผ ํ•œ ๋‹จ๊ณ„ ๋” ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์•„์ง๋„ ์‹คํŒจ)
2) _refreshControl์„ refreshControl๋กœ ๋ฐ”๊พธ๊ณ  ํ•œ ์ค„์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. https://github.com/facebook/react-native/issues/8472

  • (void)setRefreshControl:(UIRefreshControl *)refreshControl
    {
    if (์ƒˆ๋กœ ๊ณ ์นจ ์ปจํŠธ๋กค) {
    //[UIRefreshControl removeFromSuperview];
    }
    ์ƒˆ๋กœ ๊ณ ์นจ ์ œ์–ด = ์ƒˆ๋กœ ๊ณ ์นจ ์ œ์–ด;
    [์ž์ฒด ddSubview:refreshControl ];
    }

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ผ์ด ์ผ์–ด๋‚˜์„œ๋Š” ์•ˆ ๋˜๋ฉฐ ์ •๋ง ์ขŒ์ ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด ์ˆ˜์ •์€ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. react-native๊ฐ€ xcode 8.0์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

@dmitrye ์˜ ์˜๊ฒฌ์„ ์ฝ์€ ํ›„ ๋งˆ์นจ๋‚ด ์ด๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋Š” @gvlamadrid ์˜ ์ง€์นจ์— ์•ฝ๊ฐ„์˜ ๋น„ํ‹€๋ฆผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ๊ณ ์นœ ๋ฐฉ๋ฒ•.

  1. rm -rf iOS/๋นŒ๋“œ
  2. ํŒŒ์ผ -> ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ณ ๊ธ‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค
  4. "Custom"์„ ์„ ํƒํ•˜๊ณ  ํ’€๋‹ค์šด์—์„œ "Relative to Workspace"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ์ด ์˜ต์…˜์„ ์„ ํƒํ–ˆ์„ ๋•Œ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” Build/Products ๋ฐ Build/Intermediates์ž…๋‹ˆ๋‹ค. build/Build/Products ๋ฐ build/Build/Intermediates๋กœ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

run-ios ๋ช…๋ น์ด ์‹ค์ œ๋กœ ios/Build/Products์— ๋ฐฐ์น˜๋  ๋•Œ ios/build/Build/Products์—์„œ ์•ฑ์„ ์ฐพ๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ง๊ฐ์ด์ง€๋งŒ ์•„๋งˆ๋„ ์ด๊ฒƒ์€ mac์ด ๋ช…๋ น์ค„์—์„œ ๊ฒฝ๋กœ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๊ด€๋ จ์ด ์žˆ์„๊นŒ์š”? run-ios ๋ช…๋ น์ด ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๊ธฐ๋ณธ ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” XCode v8.0์„ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

์ข…์†์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ์ž‘์—… "react-native": "0.34.0"

๋‚ด pull ์š”์ฒญ ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํˆฌํ‘œํ•˜์‹ญ์‹œ์˜ค.

Xcode 8 -> Xcode 7.3.1์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค - https://medium.com/@alberto.schiabel/react -native-on-xcode-beta-8-0-how-to-fix-initial-build-error-f0225c649850#.t0m08cocz

@CEOGavin ๋งํฌ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์ง€๋งŒ XCode์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. react-native run-ios ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ v0.31์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@ghost ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ์ธ๋ฐ ํ•ด๊ฒฐํ•˜์…จ๋‚˜์š”?

@ stief510 ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

@CEOGavin ๋‚ด ๊ธฐ์‚ฌ๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

react-native => 0.35.0 ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

react-native => 0.35.0 ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋„ค๋น„๊ฒŒ์ดํ„ฐ์—์„œ RCTWebSocket ํ”„๋กœ์ ํŠธ๋ฅผ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๊ณ  ๋นŒ๋“œ ์„ค์ • > ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋งํฌ:https ://github.com/facebook/react-native/issues/10545

๋‚˜๋Š” ์ด ๋ฌธ์ œ ๋„๊ตฌ๋ฅผ ์–ป์—ˆ๋‹ค. ๋…ธ๋“œ 6.8 ๋ฐ React Native 0.36.
react-natvie upgrade ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

rnpm link ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋งํฌํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ react native link ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@simlegate rnpm์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ react-native์— ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด์ „ rnpm ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๋งํฌ ๊ธฐ๋Šฅ์„ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ์€ xcode 8.0 ๋นŒ๋“œ ๊ตฌ์กฐ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๋Š” CFBundleDisplayName ์„ CFBundleName ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ’์„ ๋™๊ธฐํ™”ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” "๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ"๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ์˜ ํด๋” ๊ถŒํ•œ์„ 777๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ž‘๋™ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

npm start -- --reset-cache ์„ ํ•œ ๋‹ค์Œ react-native run-ios ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

OSX์—์„œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ํŒŒ์ผ์— ๋‹ค์Œ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
127.0.0.1 ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ

์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‚ด ํ˜ธ์ŠคํŠธ ํŒŒ์ผ์— ํ•ด๋‹น ์ค„์ด ์ฃผ์„ ์ฒ˜๋ฆฌ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์˜ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์™„์ „ํžˆ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” Xcode ๋ฒ„์ „ 7.3.1์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

์˜ค๋ฅ˜๋ฅผ ๋ณด๋ฉด ๊ฒฝ๋กœ์— ์•ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

Installing build/Build/Products/Debug-iphonesimulator/AwesomeProject.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.

๊ทธ๋ž˜์„œ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ณ  ./ios/build/Build/Products/Debug-iphonesimulator/ ํด๋”์— ์ด๋ฆ„์— ๊ณต๋ฐฑ์ด ์žˆ๋Š” Awesome Project.app ์•ฑ์ด ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด ์ œ์•ˆ์€ ์˜ค๋ฅ˜๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋นŒ๋“œ ์ œํ’ˆ ๊ฒฝ๋กœ๊ฐ€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒฝ๋กœ์™€ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ/xcode ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋Œ€์‹  react-native run-ios ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ์œผ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

./node_modules/react-native/local-cli/runIOS/runIOS.js ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์—ด์—ˆ๊ณ 

๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฐพ์•˜๋‹ค:

const appPath = `build/Build/Products/Debug-iphonesimulator/${inferredSchemeName}.app`;

inferredSchemeName ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•”์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

์œ„๋ฅผ ๋ณด๋ฉด ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

const inferredSchemeName = path.basename(xcodeProject.name, path.extname(xcodeProject.name));

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ๋‚˜ ์ž์‹ ์—๊ฒŒ ์ปคํ”ผ๋ฅผ ์‚ฌ์•ผ ํ•œ๋‹ค๊ณ  ๋งํ–ˆ๊ณ  ๋‚˜๋Š” ๊ฐ€์„œ ์ปคํ”ผ๋ฅผ ์–ป์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ จ์ด ์—†์œผ๋ฏ€๋กœ ๋‹ค์‹œ ์ด์•ผ๊ธฐ๋กœ ๋Œ์•„๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

๋” ์กฐ์‚ฌํ•˜๊ณ  xcodeProject.name์ด .xcodeproj ํด๋”์˜ ์ด๋ฆ„์ž„์„ ๊ด€์ฐฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•ฑ์˜ ์˜ˆ์ƒ ์ด๋ฆ„์€ ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„์ด ์•„๋‹ˆ๋ผ ์ž˜๋ชป๋œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ž๋ž‘์Šค๋Ÿฝ์ง€ ์•Š์€ ๊ฒƒ: ๊ณ„์‚ฐ๋œ ๊ฒฝ๋กœ ๋Œ€์‹  ์‹ค์ œ ์•ฑ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก runIOS.js ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

const appPath = `build/Build/Products/Debug-iphonesimulator/Awesome Project.app`;

์˜ˆ, ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ ์ง€๊ธˆ์€ ์ด๊ฒƒ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‹ค์ œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RN 0.38์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒดํฌ ์•„์›ƒ
https://github.com/facebook/react-native/blob/master/local-cli/runIOS/runIOS.js#L100

2016๋…„ 11์›” 30์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 7์‹œ 7๋ถ„์— Tavi [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” Xcode ๋ฒ„์ „ 7.3.1์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

์˜ค๋ฅ˜๋ฅผ ๋ณด๋ฉด ๊ฒฝ๋กœ์— ์•ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

build/Build/Products/Debug-iphonesimulator/AwesomeProject.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ณ  ํด๋”์—์„œ ๋‹ค์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
./ios/build/Build/Products/Debug-iphonesimulator/ ์•ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„์— ๊ณต๋ฐฑ์ด ์žˆ๋Š” Project.app.

๋‚ด ์ œ์•ˆ์€ ์˜ค๋ฅ˜๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ณ 
๋นŒ๋“œ ์ œํ’ˆ์ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๋Š” ํด๋”์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ.

ํ”„๋กœ์ ํŠธ/xcode ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋Œ€์‹  ์†Œ์Šค๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
react-native run-ios ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

./node_modules/react-native/local-cli/runIOS/runIOS.js ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ 

๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฐพ์•˜๋‹ค:

const ์•ฑ ๊ฒฝ๋กœ = build/Build/Products/Debug-iphonesimulator/${inferredSchemeName}.app ;

inferredSchemeName ๋ณ€์ˆ˜ ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ด๊ฒƒ์€ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.
์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„๋ฅผ ๋ณด๋ฉด ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

const inferredSchemeName = path.basename(xcodeProject.name, path.extname(xcodeProject.name));

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ๋‚˜ ์ž์‹ ์—๊ฒŒ ์ปคํ”ผ๋ฅผ ์‚ฌ์•ผ ํ•œ๋‹ค๊ณ  ๋งํ–ˆ๊ณ  ๋‚˜๋Š” ๊ฐ€์„œ ์ปคํ”ผ๋ฅผ ์–ป์—ˆ๋‹ค. ํ•˜์ง€๋งŒ
์ด๊ฒƒ์€ ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ จ์ด ์—†์œผ๋ฏ€๋กœ ๋‹ค์‹œ ์ด์•ผ๊ธฐ๋กœ ๋Œ์•„๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

๋” ์กฐ์‚ฌํ•˜๊ณ  xcodeProject.name์ด ์ด๋ฆ„์ž„์„ ๊ด€์ฐฐํ–ˆ์Šต๋‹ˆ๋‹ค.
.xcodeproj ํด๋”.

๋”ฐ๋ผ์„œ ์•ฑ์˜ ์˜ˆ์ƒ ์ด๋ฆ„์€ ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„์ด ์•„๋‹ˆ๋ฉฐ
๋Œ€์‹  ์ž˜๋ชป๋œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์ž๋ž‘์Šค๋Ÿฝ์ง€ ์•Š์€ ๊ฒƒ : ๋‚ด๊ฐ€ ๋ฐ”๊ฟจ๋‹ค
runIOS.js ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ๋œ ๊ฒฝ๋กœ ๋Œ€์‹  ์‹ค์ œ ์•ฑ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

const ์•ฑ ๊ฒฝ๋กœ = build/Build/Products/Debug-iphonesimulator/Awesome Project.app ;

์˜ˆ, ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ ์ง€๊ธˆ์€ ์ด๊ฒƒ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‹ค์ œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/facebook/react-native/issues/7308#issuecomment-264037235 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAQi_zfCvgP-kgPAIpuEsGPRdHCnD_VTks5rDg-5gaJpZM4ITWVP
.

--
์Šคํ‹ฐ๋ธ ํฌํ„ฐ,
๊ฐœ๋ฐœ์ž @ Vydia.com

CFBundleIdentifier์— ๋Œ€ํ•œ ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด์•˜๊ณ  ์œ„์˜ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†” ๋กœ๊ทธ๋ฅผ ์กฐ๊ธˆ ์œ„๋กœ ์Šคํฌ๋กคํ•˜๋ฉด RCTSRWebSocket์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
Libraries/RCTWebSocket์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ด ์ž‘์—… ์†”๋ฃจ์…˜์œผ๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
https://github.com/facebook/react-native/issues/8584

๋ฐฉ๊ธˆ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ์ด๊ฒƒ์ด ์ผ์–ด๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘: https://github.com/facebook/react-native/issues/11265 @3dd13 ์—์„œ ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์•„์ง ํ™•์ธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋‚˜๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์—ฌ๊ธฐ์—์„œ ๋ช‡ ๊ฐ€์ง€ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ์˜ค๋Š˜ ์•„์นจ๊นŒ์ง€ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ xcode์—์„œ fbsdk ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ ํ›„ ๋‹ค์Œ์— ๋Œ€ํ•œ ์ค‘๋ณต ๋ฉ”์„œ๋“œ ์„ ์–ธ์ด ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
๋‚ด AppDelegate.m์˜ application didFinishLaunchingWithOptions

ํ›„์ž๋ฅผ application willFinishLaunchingWithOptions ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋นŒ๋“œ์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์˜ ๊ฒฐ๊ณผ๋Š”? ๋‚ด๊ฐ€ ์•Œ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™์•„, *shrug

https://developer.apple.com/reference/uikit/uiapplicationdelegate

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI 1.3.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.39.1
npm 3.10.9
๋…ธ๋“œ 7.2.1
macOS ์‹œ์—๋ผ 10.12.1

์—‘์Šค์ฝ”๋“œ: 7.2.1
react-native-cli: 2.0.0๊ณผ 1.3.0์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.39.2
OSX ์š”์„ธ๋ฏธํ‹ฐ: 10.10.5

๋‹ค์‹œ init ๋ฐ run-ios ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜

์‹คํ–‰ ์œ„์น˜์— ๋”ฐ๋ผ ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” :CFBundleIdentifier ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

@dmitrye ๋ฐ @brianneisler ์†”๋ฃจ์…˜์€ ํ›Œ๋ฅญํ•˜๊ณ  ์ฒ ์ €ํ•˜์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. @dmitrye {project}.app์€ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜

XCode์—์„œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

screen shot 2016-12-16 at 3 29 19 pm

์—…๋ฐ์ดํŠธ

์‹œ์—๋ผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  @veacks ์Šค๋‹ˆํŽซ๊ณผ ๊ฐ™์€ ์ค„ ์ฃผ์„ ์ฒ˜๋ฆฌ: https://github.com/facebook/react-native/issues/7308#issuecomment -267643715

react-native upgrade ๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ : 0.34.1
๋…ธ๋“œ: v4.4.1
npm: 4.0.5

OSX Yosemite์˜ Xcode์—์„œ ์ง์ ‘ case UIUserInterfaceIdiomCarPlay ์— ์ฃผ์„์„ ๋‹ฌ๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

image

๋‚˜๋Š” RN 39.2๋กœ El Capitan์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด :CFBundleIdentifier ์˜ˆ์™ธ๋Š” Xcode 7.1์—์„œ Xcode 8.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„์ง Sierra๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— Xcode 7.x๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด Xcode๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด ๋ณด์‹ญ์‹œ์˜ค!

@caster8013 ์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. X ์ฝ”๋“œ 8.2.1.

๊ฐ€๋Šฅํ•œ ์›์ธ์€ ์ž˜๋ชป๋œ info.plist์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ฝ์„ ์ˆ˜ ์—†๋Š” CFBundleIdentifier๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„์— plist๋ฅผ info.plist์˜ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๊ต์ฒดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ตœ๊ทผ์— ์ถ”๊ฐ€ํ•œ info.plist์— ์ถ”๊ฐ€๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„์— ์ด๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

๋‚ด ๋ฌธ์ œ๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ ๋…ธ๋“œ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋…ธ๋“œ ๋ฒ„์ „ 0.10.0์œผ๋กœ ์„ค์ •๋œ ๊ธฐ๋ณธ ๋ฒ„์ „์˜ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ react-native๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŒ์—…๋˜๋Š” ์ƒˆ ํ„ฐ๋ฏธ๋„์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋”ฐ๋ผ ๊ธฐ๋ณธ ๋…ธ๋“œ ๋ฒ„์ „์„ 5.0์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(์ด๋ฏธ NVM๊ณผ ํ•จ๊ป˜ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์ง€ ์•Š์•˜์„ ๋ฟ์ž…๋‹ˆ๋‹ค).

nvm install node && nvm alias default node
npm install -g react-native-cli
npm install
react-native run-ios

๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.

์‹ค์ œ ์›์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. react-native upgrade ๋Š” $#$ project.pbxproj PRODUCT_BUNDLE_IDENTIFIER ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  2. Info.plist ์—์„œ $(PRODUCT_BUNDLE_IDENTIFIER) ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด $(PRODUCT_BUNDLE_IDENTIFIER) ๋Š” ๋น„์–ด ์žˆ๊ณ  ์ปดํŒŒ์ผ๋œ ์•ฑ์˜ Info.plist ์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋œ ์•ฑ์˜ Info.plist ์—๋Š” CFBundleIdentifier ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค !!!

๊ทธ๋ž˜์„œ ":CFBundleIdentifier", Does Not Exist ๋ผ๊ณ  ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ •๋ง๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2๊ฐ€์ง€ ์†”๋ฃจ์…˜:

  1. $#$ Info.plist ์˜ CFBundleIdentifier PRODUCT_BUNDLE_IDENTIFIER com.xxx.app ์‚ฌ์šฉ
  2. ๋˜๋Š” PRODUCT_BUNDLE_IDENTIFIER ๋ฅผ project.pbxproj ์— ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. PRODUCT_BUNDLE_IDENTIFIER = com.xxx.app; ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ฑ์˜ Build Settings > Product Bundle Identifier ์— ๋ฒˆ๋“ค ID๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  @dragulceo ๊ฐ€ ๊ฐ€์žฅ ์•ž์„œ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹ ํ–ˆ๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

React Native๋Š” runIOS.js์—์„œ run-ios ๋ช…๋ น์˜ ์ผ๋ถ€๋กœ ํ•˜๋“œ์ฝ”๋”ฉํ–ˆ์Šต๋‹ˆ๋‹ค.
build/Build/Products/${configuration}-${isDevice ? 'iphoneos' : 'iphonesimulator'}/${appName}.app

๋ถˆํ–‰ํžˆ๋„ Xcode๋Š” ๊ตฌ์„ฑ๊ณผ Xcode ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์ž‘์—… ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋นŒ๋“œ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Xcode ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” build/Products ์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ CLI์—์„œ ๋” ๋งŽ์€ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ด pull request 11899 ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  react-native run-ios๊ฐ€ "์ž˜๋ชป๋œ"ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์„ ๋•Œ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์— ๋‹จ์„œ๋Š” react-native run-ios๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ถœ๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Found Xcode workspace BlahBlahTests.xcworkspace

์ด๊ฒƒ์€ ๋‚˜์˜ ์ฃผ์š” BlahBlah.xcodeproj๊ฐ€ ์•„๋‹ˆ๋ผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ์€ ํ…Œ์ŠคํŠธ ์ž‘์—… ๊ณต๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

BlahBlahTests.xcworkspace๋ฅผ ios/ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ–์œผ๋กœ ์˜ฎ๊ธฐ๊ณ  react-native run-ios๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์ž๋งˆ์ž ์˜ฌ๋ฐ”๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ๊ณ  ๋‹ค์‹œ ์ปดํŒŒ์ผ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

@mankins ์•ž์œผ๋กœ ์ด pull request 11899 ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CLI์—์„œ Xcode ์•ฑ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํŒŒ์ผ์„ ์ด๋™ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

npm start -- --reset-cache ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค!

์œ„์˜ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xcode์—์„œ ์‹œ์ž‘ํ•œ ํ›„ https://github.com/facebook/react-native/issues/11265#issuecomment -265663635์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

OSX 10.10.5 ๋ฐ xcode 7์„ ์‹คํ–‰ํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

OSX 10.12.2 ๋ฐ xcode 8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง„์งœ ๋ฌธ์ œ๋Š” ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ง„์งœ ๋ฌธ์ œ๋Š” ์ด sh!๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ 5๊ฐœ์›” ๋™์•ˆ ๊ฐœ๋ฐœํ•ด ์™”๋Š”๋ฐ, ์ง€๊ธˆ ๊ฐ‘์ž๊ธฐ ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๋„ ์—†์ด ๋น„์ฐธํ•˜๊ฒŒ ๋ง๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋งค์šฐ ์•ˆ์ •์ ์ด์ง€ ์•Š์€ ๋ฒ„์ „์ž„์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค: 0.XY
ํ•˜์ง€๋งŒ ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ™๋ณด๋ฅผ ์ค‘๋‹จํ•˜์‹ญ์‹œ์˜ค. ์ œ๋ฐœ. ๋‚˜๋Š” ์™„์„ฑ๋˜์ง€ ์•Š์€ ์ฐจ๋ฅผ ์ ˆ๋Œ€ ํŒ”์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถ”์‹ : ์•ฝ๊ฐ„ ๊ณผ๋ฏผ๋ฐ˜์‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์•ฝ๊ฐ„ ํ”ผ๊ณคํ•ฉ๋‹ˆ๋‹ค.

@sospedra ์— ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ @charlle ๋Š” ์—ฌ๊ธฐ์— ์ž์„ธํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/facebook/react-native/issues/12080

๋˜ํ•œ xCode ๋ฒ„์ „์„ ๋ฒ”ํ”„ํ•˜๊ณ  ์ด์ œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋…ธ์ถœํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฌธ์ œ์—†์ด ์•ฝ 2 ๊ฐœ์›” ๋™์•ˆ ์ด์ „ xCode๋ฅผ ์ž‘๋™ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  RN deps๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฒซ๋‚ ๋ถ€ํ„ฐ 0.35๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ xcode์—์„œ xcodeproj ํŒŒ์ผ์„ ์—ด๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆ๋งŒ์Šค๋Ÿฌ์šด!

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค :

  • ๋นŒ๋“œ ์ •๋ฆฌ
  • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์—ด๊ณ  ์•ฑ์„ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

http://stackoverflow.com/questions/26396166/unable-to-run-app-in-simulator

OS X El Capitan v10.11.6์—์„œ

๋…ธ๋“œ --๋ฒ„์ „ v7.2.1
npm --v 3.10.9
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 0.2.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.36.0
ํŒŒ์ˆ˜๊พผ --v 4.7.0
xcode: 8.0(8A218a)

$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐ-ios

* ๋นŒ๋“œ ์‹คํŒจ *

๋‹ค์Œ ๋นŒ๋“œ ๋ช…๋ น์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

CompileC /Volumes/Data/Win_project/mp-mobile-starter/ios/build/Build/Intermediates/RNFS.build/Debug-iphonesimulator/RNFS.build/Objects-normal/x86_64/RNFSManager.o RNFSManager.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler

(1 ์‹คํŒจ)

build/Build/Products/Debug-iphonesimulator/ReactNativeStarterKit.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์‹คํŒจ: /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/ReactNativeStarterKit.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


ํ•˜์ง€๋งŒ ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ๋™์•ˆ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.(์ด๋•Œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „ 0.40.0์— ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค.)
$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” AwesomeProject
$ cd ์–ด์ธํ”„๋กœ์ ํŠธ
$ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐ-ios

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋ฒ„์ „ "0.36.0"์—์„œ ๋นŒ๋“œ๋œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ, ์™œ ์ €์—๊ฒŒ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@ HY523 ์˜ฌ๋ฐ”๋ฅธ ํด๋”์— '์•ฑ'์ด ์—†์Šต๋‹ˆ๋‹ค.
ios/build/Build/Products/ Debug-iphonesimulator/ReactNativeStarterKit.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
Failed to install the requested application
ReactNativeStarterKit.app ๋Š” ์–ด๋–ค ํด๋”/๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๊นŒ?

Xcode@7 ๋ณ€๊ฒฝ. [email protected] ๋กœ ํ•˜๋ฉด ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค! ๊ฐ์‚ฌ ํ•ด์š”!

์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์œ„์˜ ์–ด๋–ค ๊ฒƒ๋„ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

:CFBundleIdentifier ์˜ค๋ฅ˜๋Š” Xcode ๋ฒ„์ „์ด react-native๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ(์˜ˆ: carplay)์„ ์ง€์›ํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์šฐ์„ , ์ตœ์‹  ๋ฒ„์ „์˜ react-native๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ตœ์‹  ๋ฒ„์ „์˜ Xcode ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
๋‘˜์งธ, yarn ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ๊ด€๋ฆฌ๊ฐ€ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
node์™€ npm์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์ œ๊ฑฐํ•˜๊ณ  brew ๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

๋˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” Xcode ๋ฒ„์ „์— ๋งž๋Š” ๋ฒ„์ „์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ด, ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” react-native upgrade ๋ฅผ ์ž‘๋™์‹œํ‚ค์ง€ ๋ชปํ–ˆ์ง€๋งŒ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ์— ๋Œ€ํ•ด ์ž˜๋ชป๋œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ค์ œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ ๋นŒ๋“œ์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์€ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.41.2

react-native upgrade;
react-native link;

rm -rf ios/build;

react-native run-ios

[์ด์ œ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. airbnb์˜ react-native-maps๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :( ]

์ด๊ฒƒ์€ https://medium.com/@alberto.schiabel/react -native-on-xcode-beta-8-0-how-to-fix-initial-build-error-f0225c649850์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  1. XCode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.
  2. RTCWebSocket ํ”„๋กœ์ ํŠธ(TARGETS ์„น์…˜์— ์žˆ์Œ)๋กœ ์ด๋™ํ•˜์—ฌ ๋‘ ๋ฒˆ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ๋นŒ๋“œ ์„ค์ • ํƒญ์—์„œ "์ „์ฒด" ๋ฐ "๊ฒฐํ•ฉ" ๋ณด๊ธฐ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. "Apple LLVM 8.0 โ€” ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ"๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  5. "๊ธฐํƒ€ C/C++/๊ฒฝ๊ณ  ํ”Œ๋ž˜๊ทธ" ํ•˜์œ„ ์„น์…˜์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๊ณ  ํด๋ฆญํ•˜๊ณ  ๋ชฉ๋ก ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๊ณ  "๋นผ๊ธฐ" ์•„์ด์ฝ˜์„ ํƒญํ•˜์—ฌ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค(์•„๋ž˜ ๋น„๋””์˜ค ์ฐธ์กฐ).
  6. ์‹คํ–‰ ๋ฒ„ํŠผ ํด๋ฆญ(๋˜๋Š” โŒ˜+R ๋ˆ„๋ฅด๊ธฐ)
  7. ๋„Œ ๋๋‚ฌ์–ด!

CFBundle์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ:
์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
์ข…์†์„ฑ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
๋จผ์ € package.json .
๊ทธ๋Ÿฐ ๋‹ค์Œ node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  yarn install ๋˜๋Š” npm install๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด์„ธ์š”.
๋‹ค์Œ์œผ๋กœ ios ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ํฌ๋“œ ์„ค์น˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
react-native run-ios๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๋ฉด ์ถ”๊ฐ€๋กœ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์•„๋งˆ๋„ ์ถœ๋ ฅ " * BUILD SUCCEEDED * "๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ios ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐํ™”์— ์‹คํŒจํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ์ด๋™ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ํ•ด์•ผ๋งŒ ํ–ˆ๋˜ ์ผ,
๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! :)

Xcode ๋ฒ ํƒ€ 8์€ ๋ช‡ ์ผ ์ „์— ์ƒˆ๋กญ๊ณ  ๊นจ๋—ํ•œ ํ”„๋กœ์ ํŠธ(์˜ˆ: react-native init projectname ์งํ›„)์—์„œ ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค. 8.2.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

react-native => 0.35.0 ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋œ Xcode๋กœ ํ•ด๊ฒฐ๋จ โ˜บโ˜บโ˜บโ˜บ

๋‘ ๊ฐœ์˜ Xcode๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ Xcode๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

์ €๋Š” ๊ฐ๊ฐ 7.1๊ณผ 8.1์ธ ๋‘ ๊ฐœ์˜ Xcode๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ ๋Ÿฐํƒ€์ž„์— Xcode7.1 ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Xcode7.1์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ™˜๊ฒฝ:
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.42.3
๋…ธ๋“œ: 7.3.0
npm: 3.10.10

AwesomeProject๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋นŒ๋“œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

* ๋นŒ๋“œ ์‹คํŒจ *

๋‹ค์Œ ๋นŒ๋“œ ๋ช…๋ น์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
PhaseScriptExecution ์‹œ์ž‘\ํŒจํ‚ค์ €/Users/luca/workspace/pillsy/ios/build/Build/Intermediates/React.build/Debug-iphonesimulator/React.build/Script-006B79A01A781F38006873D1.sh
(1 ์‹คํŒจ)

build/Build/Products/Debug-iphonesimulator/pillsy.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์‹คํŒจ: /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/pillsy.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

My-Mac:pillsy luca$ /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier ios/build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค: ios/build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
My-Mac:pillsy luca$ /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier ios/build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค: ios/build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

@zhiyong888 Xcode ๋ฒ„์ „?

์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

XCode: ๋ฒ„์ „ 8.2.1(8C1002)

์•„๋ฌด๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.42 ๋ฐ Xcode 8.2.1 ์‚ฌ์šฉ

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 1.0.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.42.3
์—‘์Šค์ฝ”๋“œ 8.2.1

์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

๊ฐ์‹œ์ž, ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ, xcode๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ด๋ฆ„์„ org.abc.xyz ์—์„œ com.reimertz.something ๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๊ฐ€ ๊นจ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@brianneisler ๋‹น์‹ ์˜ ์†”๋ฃจ์…˜์ด ๋‚ด ์ƒ๋ช…์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™

์–˜๋“ค ์•„, ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 2๋Œ€์˜ Mac ์ปดํ“จํ„ฐ์—์„œ ์ €๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š”ํ•ด์•ผํ–ˆ๋‹ค :

  • ๋…ธ๋“œ ์—…๋ฐ์ดํŠธ
  • ์—…๋ฐ์ดํŠธ npm
  • ๋‚ด npm ์บ์‹œ ์ฒญ์†Œ
  • ๋‚ด ํ”„๋กœ์ ํŠธ์˜ node_modules๋ฅผ ์‚ญ์ œํ•˜๊ณ  0์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.
$ npm cache clean
$ sudo n 6.
$ sudo npm install -g [email protected]
$ sudo npm install -g npm<strong i="13">@next</strong>
$ sudo n 7.

$ cd ./your_project_folder/
$ rm -rf ./node_modules

๋ชจ๋“  ๊ฒƒ์„ ์—…๋ฐ์ดํŠธํ•œ ํ›„์˜ ํ˜„์žฌ ํ™˜๊ฒฝ:
๋…ธ๋“œ 7.8.0
NPM 4.4.4

๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋‚ด 2๊ฐœ์˜ Mac์— ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ ํ›„์—์•ผ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋ผ๊ฑด๋Œ€ ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์˜ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์ด ๋ฐฉ๋ฒ•์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋” ๋‚ฎ์€ RN ๋ฒ„์ „์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

" ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” --version="0.38.0" AllTheBestApp "

๋ฐฉ๊ธˆ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. Xcode๋ฅผ 8.2.1(El Capitan์—์„œ ์ง€์›๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „)์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ–ˆ๊ณ  (์ค‘์š”!) ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹œ๋„ํ•  ๋•Œ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— iOS ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

rm -rf ios/build/
react-native run-ios

FWIW, ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑํ‘œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.42.3
  • ๋…ธ๋“œ v6.10.1(nvm์„ ํ†ตํ•ด)
  • npm 3.10.10
  • OS X 10.11.6(์—˜ ์บํ”ผํƒ„)
  • ์—‘์Šค์ฝ”๋“œ 8.2.1

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  xcode์™€ El Capitan์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Xcode ์‹คํ–‰ project/ios/project.xcodeproj๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  react-native run-ios๋ฅผ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

XCode๋ฅผ ์ตœ์‹ (8.3.2)์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ !!

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พผ ํ›„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

์„ ํƒ ์‚ฌํ•ญ:

  • ios ๋ฐ android ํด๋”๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‹ค :

  • ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค: react-native upgrade ,
  • ์ด ํŒจํ‚ค์ง€ react-native-git-upgrade ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์—์„œ react-native-git-upgrade ๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์‹ค์ œ ์ข…์†์„ฑ

"react": "16.0.0-alpha.6",
"react-native": "0.43.4",

์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์•„์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. macOS Sierra(10.12.4)์—์„œ Xcode 8.3.2(8E2002)๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋ณธ ํ†ตํ•ฉ ์ฝ”๋“œ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ์„ ๋ณ€๊ฒฝํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ios/ ๋ฐ android/ ๋ฅผ ์ง€์šฐ๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ์œ„์—์„œ ์ œ์•ˆํ•œ ๋ชจ๋“  ๋‹จ์ผ ํ•ญ๋ชฉ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒˆ๋“ค ์‹๋ณ„์ž๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ios/build ์„(๋ฅผ) ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. react-native upgrade ๋ฅผ ํ–ˆ์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ๋Œ€๋ถ€๋ถ„์˜ Android ํŒŒ์ผ์„ ๋ณด์กดํ–ˆ์Šต๋‹ˆ๋‹ค. LLVM 8.1 ์„ค์ •์—์„œ ์ด ๋‘ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Xcode๋ฅผ ์—ด๊ณ  CMD+R์„ ํ•˜๋ฉด ์•ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ react-native run-ios ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

** BUILD SUCCEEDED **


Installing build/Build/Products/Debug-iphonesimulator/TeamCoco.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/TeamCoco.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

์ €๊ธฐ์„œ ๋จธ๋ฆฌ์นด๋ฝ ๋ฝ‘๊ณ ...

ํŽธ์ง‘: ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ๋””๋ฒ„๊น…ํ•œ ํ›„ ๋‚˜๋Š” ๋งˆ์ง€๋ง‰์—์„œ ๋‹ค์Œ ์ค„์ด ๋ฌธ์ œ์˜ ์›์ธ์ด๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. react-native run-ios ์ด(๊ฐ€) ์กด์žฌํ•˜์ง€ ์•Š๋Š” build/Build/Products ์— ๋Œ€ํ•ด PlistBuddy๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. build/Products ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด dir ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@johndanek ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. launchPackager.command ์—์„œ ํŒŒ์ˆ˜๊พผ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

Xcode version 8.2.1
"react": "16.0.0-alpha.6"
"react-native": "0.44.0"
 ERROR  watchman --no-pretty get-sockname returned with exit code=1, signal=null, stderr= 2017-05-03T14:02:20,731: [2095001600] while computing sockname: failed to create /usr/local/var/run/watchman/foobar-state: No such file or directory

Error: watchman --no-pretty get-sockname returned with exit code=1, signal=null, stderr= 2017-05-03T14:02:20,731: [2095001600] while computing sockname: failed to create /usr/local/var/run/watchman/foobar-state: No such file or directory

at ChildProcess.<anonymous> (/Users/foobar/Projects/Mobile/finantrack_mobile_client/node_modules/react-native/node_modules/jest-haste-map/node_modules/sane/node_modules/fb-watchman/index.js:198:18)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:194:7)
    at maybeClose (internal/child_process.js:899:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at Pipe._handle.close [as _onclose] (net.js:504:12)

์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ๊ฐ€ 1๊ฐœ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@johndanek PRODUCT_BUNDLE_IDENTIFIER๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ CFBundleIdentifier๋Š” Info.plist์—์„œ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ์—ฌ์ „ํžˆ ๋‹ค๋ฅธ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ์ ํŠธ A์˜ ํด๋”์—์„œ react-native run-ios ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ฐฝ์„ ๋‹ซ์ง€ ์•Š๊ณ  ํ”„๋กœ์ ํŠธ B๋กœ ์ „ํ™˜ํ•œ ๋‹ค์Œ react-native run-ios ๋กœ ํ”„๋กœ์ ํŠธ B๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— "CFBundleIdentifier, Does Not Exist" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ A์™€ ๊ด€๋ จ๋œ

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ฐฝ์„ ๋‹ซ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ... ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€. ๋””๋ฒ„๊น…ํ•˜๊ณ  ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค!

๋‚ด node_modules๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ํŠธ๋ฆญ์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ :

์šด์˜
npm start
ํ„ฐ๋ฏธ๋„์—์„œ

๊ทธ๋Ÿฐ ๋‹ค์Œ XCode์—์„œ ๊ธฐ๋ณธ iOS ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์ƒ์„ฑ ์ฝ”๋“œ์— ์ผ๋ถ€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค(์ด์ƒํ•œ๊ฐ€์š”?).

๋‚˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚จ ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ์•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ์ผ
ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ด๊ฒƒ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.
$ npm install -g react-native-git-upgrade
$ react-native-git-upgrade
์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์ตœ์‹  React Native๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

์ด๊ฒƒ๋“ค์€ ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
https://github.com/facebook/react-native/issues/7308#issuecomment -228638046
https://github.com/facebook/react-native/issues/7308#issuecomment -230198331

vi node_modules/react-native/local-cli/runIOS/runIOS.js
https://github.com/facebook/react-native/blob/master/local-cli/runIOS/runIOS.js#L18

์–ด๋–ค ๊ฒƒ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ฐพ์œผ์‹ญ์‹œ์˜ค.

ios/build/Products
ios/build/Build/Products

@zongwan ios/build/Products๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ Custom์„ Relative Path๋กœ ์„ค์ •ํ•˜๊ณ  build/Products ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋‹น์‹ ์˜ ๊ฒฝ์šฐ ์˜€๋‚˜์š”?

๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์˜ ๋งํฌ์—์„œ ๋‚˜๋Š” ๋ณธ๋‹ค

const getBuildPath = function(configuration = 'Debug', appName, isDevice) {
  return `build/Build/Products/${configuration}-${isDevice ? 'iphoneos' : 'iphonesimulator'}/${appName}.app`;
};

๊ทธ๋ž˜์„œ ๋ญ”๊ฐ€ ๊ทธ๋ฆฌ์›Œ?

@gigeos
์˜ˆ, ๊ทธ๋ž˜์„œ ํ”„๋กœ์ ํŠธ ์„ค์ • ์—์„œ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
Custom to Workspace =>>> Xcode Default

๋“œ๋””์–ด ios/build/Build/Products


๋‚ด ์‹ค์ˆ˜, ๋‚ด ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์˜ ์ž˜๋ชป๋œ ์ค„.
์ˆ˜์ • => https://github.com/facebook/react-native/blob/master/local-cli/runIOS/runIOS.js#L18

ํ•ด๊ฒฐ! ์ •๋ณด๋ฅผ ์œ„ํ•ด:

  • RN v 0.44(์ตœ์‹ )๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • info.plist(Xcode 8.3)์˜ Bundle Identifier์— ๋Œ€ํ•ด $(PRODUCT_BUNDLE_IDENTIFIER) ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฒˆ๋“ค ์‹๋ณ„์ž๋ฅผ ์„ค์ • -> ๋ฒˆ๋“ค ์‹๋ณ„์ž (์˜ˆ: com.mybundle.identifier)
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ Xcode๋กœ ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(์‹คํŒจํ•จ).
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ฑ๊ณต์œผ๋กœ react-native run-ios ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค!

8081 ํฌํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” McAffee Agent์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฑฐ ๋ฐ ์žฌ๋ถ€ํŒ…์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
https://community.mcafee.com/thread/94244?start=0&tstart=0

์ตœ์‹  ๋ฒ„์ „์˜ Xcode๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ์ธํ•ด ์—ฌ์ „ํžˆ ์ด์ „ ๋ฒ„์ „๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋ฒ„์ „์„ ์ง€์ •ํ•˜๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์ด ์–ด๋”˜๊ฐ€์— ์žˆ์Šต๋‹ˆ๋‹ค. xcode-select --switch "/Applications/Xcode.app/Contents/Developer/" ...๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๋นŒ๋“œ ์„ฑ๊ณต

๋นŒ๋“œ ์„ค์ • ๋‚ด์—์„œ ์ œํ’ˆ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ฐพ๊ณ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ
  • Xcode๋กœ ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ, ์˜ฌ๋ฐ”๋ฅธ ์„œ๋ช… ์ธ์ฆ์„œ ์กฐ์ •/์‚ฌ์šฉ

๊ฐ™์€ ๋ฌธ์ œ. ์œ„์˜ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ work.wtf๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

VinceXie๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  Xcode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€๋งŒ "run-ios"๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ๋‹ต๋ณ€์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์กฐ๊ฑด์— ์žˆ๋‹ค๋ฉด ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค() https://github.com/bonniee/learning-react-native ์—์„œ ๊ธฐ์กด react-native ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์ œํ•  ๋•Œ

  1. ๋‚˜๋Š” ์ดˆ๊ธฐํ™”(์‚ฌ์šฉ) ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์— ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ƒˆ ํ”„๋กœ์ ํŠธ

  2. ๋ชจ๋“  ์œ ์šฉํ•œ *.ios.js ํŒŒ์ผ์„ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ณต์ œํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์ด ์ƒˆ ํ”„๋กœ์ ํŠธ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

TADA, ์ด๊ฒƒ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

์•„์•„, ๋‚˜๋Š” ๋„ˆ๋ฌด ์˜ค๋žซ๋™์•ˆ ๊ตฌ๋ฉ์ด๋ฅผ ์˜ค๋ฅด๊ณ  ์žˆ์—ˆ๊ณ  ๋งŽ์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์‚ฌ๋ก€๋ฅผ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋ž‘ํ•˜์ง€ ์•Š์•„ ์ง€์ณค์–ด~~~
์‚ฌ์‹ค ์กด์žฌํ•˜์ง€ ์•Š๋Š” ":CFBundleIdentifier"๋กœ ์ธํ•ด ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.๊ถ๊ทน์  ์ธ ์†”๋ฃจ์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค
https://hacpai.com/article/1497235254333 iOS -> 'React/RCTBundleURLProvider.h' ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์— ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค!

@florismettey ๋‹น์‹ ์˜ ์†”๋ฃจ์…˜์ด ์ €๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค!!! ์ œ๊ณต๋œ ์†”๋ฃจ์…˜์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ๊ณ ๋งˆ์›Œ!

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

Installing build/Build/Products/Debug-iphonesimulator/AwesomeProject.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/AwesomeProject.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

macOS Sierra์—์„œ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์†”๋ฃจ์…˜:

  1. ๋‚ด package.json ์˜ React ๋ฐ React Native๋ฅผ ๋‹ค์Œ ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ:
// package.json
"dependencies": {
    "react": "16.0.0-alpha.6",
    "react-native": "0.44.0"
}

์ด ์†”๋ฃจ์…˜์€ ์—ฌ๊ธฐ์—์„œ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค .

  1. watchman watch-del-all; npm start -- --reset-cache ์‹คํ–‰ ;

์ด ๋‘ ๋‹จ๊ณ„ ํ›„์— ๋ฌธ์ œ ์—†์ด react-native run-ios ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ๊ธ€๋กœ๋ฒŒ react-native ๋ฒ„์ „์€ 0.44.0 ์ด๊ณ  react-native-cli ๋ฒ„์ „์€ 2.0.1 ์ž…๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

react-native init์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

react-native init ProjectName ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

๋งˆ์ง€๋ง‰์— ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „ ์ธ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด:

react-native init ProjectName --version 0.44.2

@renguochao ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@renguochao ์˜ ์†”๋ฃจ์…˜๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1) xcode๋ฅผ 7.3.1๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ
2) ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ 0.38.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ
3) cd ios/ ๋ฐ pod install ๋‹ค์‹œ ์‹คํ–‰
4) react-native run-ios ์‹คํ–‰

/User/yourAccount ๊ฒฝ๋กœ์—์„œ .rncache ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๊ณ  react-native run-ios๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@renguochao ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‚˜์—๊ฒŒ ์—ฌ์ „ํžˆ ๋ฌธ์ œ (๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ >_<)

@renguochao ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
react-native init ProjectName --version 0.44.2

@renguochao ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ --๋ฒ„์ „ 0.44.2

@renguochao ์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค

๋” ๋‚ฎ์€ ๋ฒ„์ „์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ cocoapods์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋กœ ์ธํ•ด 0.45.0 ์ด์ƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ผ์ข…์˜ ๋ซ์— ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค :/

ํŒŒ์ผ ๊ฒฝ๋กœ๋Š” ์ ˆ๋Œ€์ ์ด์ง€ ์•Š๊ณ  ์ž‘์—… ๊ณต๊ฐ„์— ์ƒ๋Œ€์ ์ด๋ผ๊ณ  Xcode์— ์•Œ๋ ค์„œ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Xcode์—์„œ:
ํŒŒ์ผ > ํ”„๋กœ์ ํŠธ ์„ค์ •(๋˜๋Š” ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •)
๊ณ ๊ธ‰์˜
์‚ฌ์šฉ์ž ์ •์˜ > ์ž‘์—… ๊ณต๊ฐ„ ๊ธฐ์ค€
๋นŒ๋“œ/์ œํ’ˆ์„ ๋นŒ๋“œ/๋นŒ๋“œ/์ œํ’ˆ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
Build/Intermediates๋ฅผ build/Build/Intermediates๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ง€๊ธˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒํ•˜๊ฒŒ ๋„ ๋‚˜๋ฅผ ์œ„ํ•œ ์†”๋ฃจ์…˜์€ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ ์•„๋ž˜์— ๊ณต๊ฐ„์ด ์žˆ๋Š” ํด๋”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘ ํŽ˜์ด์Šค๋ถ์šฉ.

RN ๋ฒ„์ „์„ 0.44.2๋กœ ์ง€์ •ํ•˜๋ฉด run-ios๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ์ตœ์‹  ๋ฒ„์ „์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. @renguochao ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

node_modules/react-native/React/Views/RCTScrollView.m์„ ์—ด๊ณ  361ํ–‰์—์„œ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์ž‘๋™ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

- (void)setRefreshControl:(UIRefreshControl *)refreshControl
{
    if (refreshControl) {
        //[UIRefreshControl removeFromSuperview];
    }
    refreshControl = refreshControl;
    [self addSubview:refreshControl];
}

์ด๊ฒƒ์€ https://github.com/facebook/react-native/issues/8472 ์—์„œ ์ˆ˜์ •๋œ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚ด ์งˆ๋ฌธ์€ ํŒŒ์ผ์ด ์™„์ „ํžˆ ๋‹ค์šด๋กœ๋“œ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค boost_1_63_0.tar.gz .
ํ„ฐ๋ฏธ๋„์—์„œ cd .rncache ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
boost_1_63_0.tar.gz๊ฐ€ B์— ๋ถˆ๊ณผํ•˜๋‹ค๋ฉด ์ด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ง์ ‘ ๊ตฌ์ž…ํ•˜์—ฌ ๊ต์ฒดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ํŒŒ์ผ์˜ boost_1_63_0.tar.gz๋Š” 78M์ž…๋‹ˆ๋‹ค.
๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์„ค์ •์„ ๋”ฐ๋ฅด๋ฉด iOS ์™€ Android ๋ชจ๋‘์—์„œ ์‹ค์ œ๋กœ ์˜ค๋ฅ˜ ์—†์ด ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

@renguochao ์˜ ์†”๋ฃจ์…˜์— ๋”ฐ๋ผ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”๋œ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋‚ ๋ ค๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. react-native init ProjectName --version 0.44.2 ์ง€๊ธˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ตœ๊ทผ์— ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์˜ xcode ๊ฒฝ๋กœ ๋ณ€๊ฒฝ, ํŒŒ์ˆ˜๊พผ ์ง€์šฐ๊ธฐ ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐ์–ธ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค. ๋‚ด OS๋Š” El Capitan์ด์—ˆ๊ณ  Xcode๋Š” ์›๋ž˜ 7.1์ด์—ˆ์Šต๋‹ˆ๋‹ค. xcode๋ฅผ 7.31๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚ด ์ธ์Šคํ„ด์Šค๋ฅผ MacOS Sierra๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  xcode 8.3.2๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ด์ „์— ์ž‘์—…ํ–ˆ๋˜ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด์ œ ๋ฌธ์ œ ์—†์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์—…๋ฐ์ดํŠธ
Xcode ์—…๋ฐ์ดํŠธ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Android ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋‚ด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•  ๋•Œ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค๋ฅธ ๊นจ๋—ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ node_modules ์ œ๊ฑฐ,
  2. src ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌ
  3. ์ด์ „ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํŒŒ์ผ๋กœ ์กฐ์ •, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ „ ํ”„๋กœ์ ํŠธ "์—ฐ๊ฒฐ"
  4. ํ”„๋กœ์ ํŠธ ๋‹ค์‹œ ์„ค์น˜

์•„๋งˆ๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ๊ฒƒ์ด์ง€๋งŒ ์ข‹์€ ์†”๋ฃจ์…˜์€ ์•„๋‹™๋‹ˆ๋‹ค(ํ•˜๋‚˜๋งŒ ์ž‘๋™ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Œ).

@renguochao ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒฝ์šฐ react-native init ProjectName --version 0.44.0 ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์ œํ•  ๋•Œ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ํ„ฐ๋ฏธ๋„์— 'npm install' ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ธฐ ์ „์— package.json ํŒŒ์ผ์—์„œ react-native ๋ฒ„์ „์„ 0.44.0์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@Vanessa219 ๋Š” ์—ฌ์ „ํžˆ ๋‚ด ๋™ํฌ์ด๊ณ  react-native/third-part๋ฅผ ์ง์ ‘ ์‚ญ์ œํ•˜๊ณ  ๋ถ€ํŒ… ํŒŒ์ผ์— ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด ์ˆ˜๋™์œผ๋กœ ํŒŒ์ผ์„ rnCache์— ๋„ฃ์€ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค!

@Vanessa219 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!๋‹น์‹ ์˜ ์†”๋ฃจ์…˜ ์™ธ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

์—ฌ๊ธฐ์— ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ์ œ์•ˆ๋œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!

Xcode ๋ฒ„์ „ 8.3.3(8E3004b)
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.45.1

``` * ๋นŒ๋“œ ์‹คํŒจ *

๋‹ค์Œ ๋นŒ๋“œ ๋ช…๋ น์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

CompileC /Users/DiMacBook/Documents/DEV/CursoReact/teste/ios/build/Build/Intermediates/React.build/Debug-iphonesimulator/third-party.build/Objects-normal/x86_64/Bits.o /Users/DiMacBook/Documents/DEV/CursoReact/teste/node_modules/react-native/third-party/folly-2016.09.26.00/folly/Bits.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler

(1 ์‹คํŒจ)

build/Build/Products/Debug-iphonesimulator/teste.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์‹คํŒจ: /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/teste.app/Info.plist
์ธ์‡„: ํ•ญ๋ชฉ ":CFBundleIdentifier", ์กด์žฌํ•˜์ง€ ์•Š์Œ```

์ด ๋ธ”๋กœ๊ทธ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ €์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค: CFBundleIdentifier", ์กด์žฌํ•˜์ง€ ์•Š์Œ

@whoyoung ๊ทธ๋Ÿผ ์˜์–ด๋ฒˆ์—ญ์ด ์žˆ๋‚˜์š” ๐Ÿ˜†

@cuiyueshuai ๋„ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋๊นŒ์ง€ ๋”ฐ๋ผ๊ฐ€์„œ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„
@wy1009 ์ค‘๊ตญ์–ด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์„œ ๋„์›€์ด ๋˜์–ด์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค๐Ÿ‘
@dey-dey๋Š” React Native ์‹œ๋ฆฌ์ฆˆ [์˜ˆ์™ธ]๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - iOS

@dey-dey ์š”์•ฝํ•˜์ž๋ฉด, react-native ๋ฒ„์ „ 0.45.0์œผ๋กœ ์ƒˆ RN ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  react-native ๋ฒ„์ „ 0.45.0 ์ด์ „์—๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ react-native ๋ฒ„์ „์„ ๋ฒ„์ „ 0.44.3์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ react-native์˜ ์ข…์†์„ฑ์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. react-native์˜ ๋ฒ„์ „์€ 16.0.0-alpha.6์ž…๋‹ˆ๋‹ค.
๋‹จ๊ณ„:

  1. "node-modules"๋ผ๋Š” ํด๋”๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.
  2. package.json์„ ์—ฐ ๋‹ค์Œ ๊ต์ฒดํ•˜์‹ญ์‹œ์˜ค.
"react": "16.0.0-alpha.12",
"react-native": "0.45.0"

~์™€ ํ•จ๊ป˜

"react": "16.0.0-alpha.6",
"react-native": "0.44.3"
  1. "npm ์„ค์น˜" ์‹คํ–‰
  2. "react-native run-ios"๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์‹ฌํ•˜๊ณ  5๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.
  3. xcode๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด๊ณ  ์‹คํ–‰์„ ํด๋ฆญํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

@Vanessa219 @whoyoung ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์ œ ์ค‘๊ตญ์–ด๋Š” ์•„์ง ๋ฏธ์ˆ™ํ•ฉ๋‹ˆ๋‹ค

๋ฐฉ๊ธˆ cli๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ์ƒ์„ฑํ–ˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—๋Š” ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ ค์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. rm -rf ./๋…ธ๋“œ ๋ชจ๋“ˆ
    2 ์—…๋ฐ์ดํŠธ package.json
{
    "react": "15.3.2",
    "react-native": "0.37.0"
  }
  1. npm ์„ค์น˜
  2. ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ iOS
    (์•„๋งˆ๋„ ์ž‘๋™ํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „๊ณผ ๊ฐ™์€ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋จผ์ € ์ž‘์—…ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. - > ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ํŒจํ‚ค์ง€ json ์ฐธ์กฐ -
    > https://github.com/browniefed/examples/blob/todo/layout/todo/package.json

react-native init ProjectName --version 0.44.2 ๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค!

@๋ฐ์ด๋ฐ์ด

  • ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ ~/.rncache๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ~/.rncache์— ์ˆ˜๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹ญ์‹œ์˜ค.
  • ์œ„ ํŒŒ์ผ์„ your_project/node_modules/react-native/third-party์— ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒญ์†Œ ๋ฐ ๊ตฌ์ถ•

@udoless ์Šฌํ”„๊ฒŒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!

react-native init ProjectName --version 0.44.2 ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๋ฌธ์ œ์— ๊ฒŒ์‹œ๋œ ๊ฑฐ์˜ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•œ ํ›„ ์ด ์†”๋ฃจ์…˜์ด ์ œ ์ž‘์—…์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค!

react-native init ProjectName --version 0.44.2

๋‚ด ํ™˜๊ฒฝ:

 - node v6.9.5
 - npm 3.10.10
 - xcode 8.3.3
 - macOS Sierra 10.12.5

Google์—์„œ https://github.com/GeekyAnts/NativeBase/issues/936 ์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ณธ ์›์ธ์€ ์‹คํŒจํ•œ ๋‹ค๋ฅธ ๋ช…๋ น์œผ๋กœ ์ธํ•ด ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ cfbundleidentifier ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๊ทผ๋ณธ ์›์ธ์ด ์•„๋‹ˆ๋ผ ์ฆ์ƒ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋นŒ๋“œ ์‹คํŒจ๋ฅผ ์ดˆ๋ž˜ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๋งˆ์ง€๋ง‰ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ทผ๋ณธ ์›์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ์„ ๋” ๋ณด๋ฉด ๋„์›€์ด ๋ ๊นŒ์š”? ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•˜์—ฌ ์ด ๋งˆ์ง€๋ง‰ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@novalagung ๊ณผ Gringox๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค.

react-native init ProjectName --version 0.44.2

์˜ค๋Š˜ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•ฉ๋‹ˆ๋‹ค: 2017.7.6

๋‚˜๋Š” 0.45, 0.46์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌํŠธ 8081 ์— ๋Œ€ํ•œ ๋ชจ๋“  ์–ธ๊ธ‰์— ๋Œ€ํ•ด node_modules ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, ๋ชจ๋“  ํŒŒ์ผ. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฃจํŠธ์—์„œ .babelrc react-native run-ios ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋ชจ๋“  ๊ฒƒ์ด ๋งˆ์นจ๋‚ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ง๋„ ์•ˆ ๋˜๋Š” ์†Œ๋ฆฌ์˜€๋‹ค. ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ 4์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค... ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋‘ ์–ด๋ฆฌ์„์€ McAfee๊ฐ€ 8081 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Mac์—์„œ McAfee๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์˜ํšŒ์˜ ์–ด๋ฆฌ์„์€ ํ–‰๋™์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฉ์ฒญํ•ด.

์ด ์Šค๋ ˆ๋“œ์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ๋„ RN v0.44.0, 0.44.1, 0.44.2, 0.44.3 ๋ฐ 0.45.0
React v16.0.0-alpha.6 ๋ฐ 16.0.0-alpha.12 ์‹œ๋„
๋…ธ๋“œ v7.10.0

ํŽธ์ง‘: RN 0.45.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  React๋ฅผ ์›๋ž˜ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค(์ž ๊ธˆ ํŒŒ์ผ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ).

React ๊ธฐ๋ณธ ๋ฒ„์ „์€ Xcode, React ๋ฐ React ๊ธฐ๋ณธ ๋ฒ„์ „์˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Xcode๋ฅผ 7.3์—์„œ 8.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๋‹ค์Œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. 7.3์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. 15.3.2 React ๋ฐ 0.37 ๋„ค์ดํ‹ฐ๋ธŒ. Xcode 8.1์€ ์ด๋ฒˆ ์ฃผ ์›”์š”์ผ ํ˜„์žฌ ์ตœ์‹  cli์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก Xcode๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  cli๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  Xcode ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/facebook/react-native/issues/8472 ๋กœ ์ธํ•ด ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๊ณ ์ณค์–ด, ๋‚ด ๋ฌธ์ œ๋ฅผ ๊ณ ์ณค์–ด

ํ˜„์žฌ๋กœ์„œ๋Š” 0.44๋ฅผ ์‚ฌ์šฉํ•˜๋Š” 0.46.1์— ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฏฟ์„ ์ˆ˜ ์—†์ง€๋งŒ ๊ณง ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค...

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ...build/Build/Products/Debug-iphonesimulator/*.app ์ž…๋‹ˆ๋‹ค.
๋ถ„๋ช…ํžˆ run-ios ๋ช…๋ น์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ Debug build/Build/Products ๋กœ ์•ฑ์„ ๋‚ด๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‹ค์Œ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ ์œ„์น˜๋Š” build/Build/Products , XCode Default , Build/Products ์ž…๋‹ˆ๋‹ค.
์ด ์„ค์ •์€ XCode์˜ File > Project Settings > Advanced ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ๊ตฌ์„ฑ์€ Debug Release ๊ฐ€ ์•„๋‹ˆ๋ผ Debug์ž…๋‹ˆ๋‹ค.
์ด ์„ค์ •์€ XCode์˜ Product > Scheme > Edit Scheme > Run ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์ด Release ์ด๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์•ฑ์„ ...build/Build/Products/Release-iphonesimulator/*.app ๋กœ ๋‚ด๋ณด๋‚ด๊ณ  run-ios ๋Š” ์—ฌ์ „ํžˆ ์•ฑ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ 0.44.0์€ 0.46.1, Debug-iphonesimulator์™€ ๋™์ผํ•œ ๋นŒ๋“œ ์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค...

๋‚ด XCode๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ ํ›„ ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์•„๋‹Œ XCode์ธ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งŒ๋‚˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ด ๋ฌธ์ œ๋Š” 2016๋…„๋ถ€ํ„ฐ ์‹คํ–‰๋˜์—ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์–ด๋–ค ์†”๋ฃจ์…˜๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.46.1
npm: 4.2.0
๋…ธ๋“œ -v: 6.9.1
ํŒŒ์ˆ˜๊พผ: 4.7.0
xcode: 8.3.3
๋งฅ 10.12.5

๊ฐ™์€ ์ด๋ฆ„, ํด๋ก  ์ฝ”๋“œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•œ ๋‹ค์Œ ์ด์ „ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒํ•ด ๊ฒฝ๋กœ๊ฐ€ ์–ด๋”˜๊ฐ€์— ์บ์‹œ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ฒฐ๊ตญ ์ด์ „ ๊ฒฝ๋กœ๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ๋Œ€์‹  ์ƒˆ ๊ฒฝ๋กœ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ–‰์šด์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒƒ, ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ๋Š” ํšจ๊ณผ๊ฐ€ ์—†๋Š” ์†”๋ฃจ์…˜, Ridiculous Good Job React ๋„ค์ดํ‹ฐ๋ธŒ

์ƒˆ๋กœ์šด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ ๋ฅผ ํด๋ฆญํ•˜์—ฌ third-party.zip ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ(๋˜๋Š” ๋‚ด ๋ฐ๋ชจ ๋ณต์ œ ๋˜๋Š” ๋‹ค์šด๋กœ๋“œ , third-party.zip์€ ๋ฐ๋ชจ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Œ)ํ•œ ๋‹ค์Œ, ๋‹ค์Œ ์œ„์น˜์— third-party.zip ํŒŒ์ผ์˜ ์•„์นด์ด๋ธŒ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.
"ํƒ€์‚ฌ"์˜ ๋””๋ ‰ํ† ๋ฆฌ. "ํƒ€์‚ฌ"์˜ ๊ฒฝ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. yourProjectRootDirectory/node_modules/react-native/third-party/ . ๋งˆ์ง€๋ง‰์œผ๋กœ Xcode๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด๊ณ  ์‹คํ–‰์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ ๋ฅผ ํด๋ฆญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

=== ๊ตฌ์„ฑ ๋””๋ฒ„๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ NewProject์˜ NewProjectTests๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ===

์ข…์†์„ฑ ํ™•์ธ

* ๋นŒ๋“œ ์„ฑ๊ณต *

build/Build/Products/Debug-iphonesimulator/NewProject.app ์„ค์น˜
๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋„๋ฉ”์ธ=NSPOSIXErrorDomain, ์ฝ”๋“œ=2):
์š”์ฒญํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ณต๋œ ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒˆ๋“ค์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์‹คํŒจ: /usr/libexec/PlistBuddy -c ์ธ์‡„:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/NewProject.app/Info.plist
์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•  ์ผ

ROFL, @dragulceo ๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. xcode์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์—ˆ๊ณ  ์ผ๋ถ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ ํญ๋ฐœํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๊ณ  ๊ฒฝ๋กœ์—์„œ ๊ณต๋ฐฑ์œผ๋กœ ์ž˜๋ฆฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒฝ๋กœ์— ๊ณต๋ฐฑ์ด ์—†๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”ํ–ˆ๋Š”๋ฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ react-native-cli: 2.0.1, react-native: 0.46.3์˜ ๊ธฐ๋ณธ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์— ๋ฐ˜์‘ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๋กœ ์ด์–ด์ง€๋Š” ๊ฒฝ๋กœ์˜ ์–ด๋Š ๊ณณ์—์„œ๋„ ๊ณต๋ฐฑ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋‚ด๊ฐ€ ์–ป๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 Node v8.0.0
 react-native": 0.46.3
 XCode Version 8.3.3 (8E3004b)

react-native run-ios --simulator="iPhone 7" ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.


=== BUILD TARGET third-party OF PROJECT React WITH CONFIGURATION Debug ===

Check dependencies


** BUILD FAILED **


The following build commands failed:
CompileC /Users/tharaka/Documents/Projects/Abiling/AbilingApp/ios/build/Build/Intermediates/RCTText.build/Debug-iphonesimulator/RCTText.build/Objects-normal/x86_64/RCTTextView.o RCTTextView.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Installing build/Build/Products/Debug-iphonesimulator/AbilingApp.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The bundle identifier of the application could not be determined.
Ensure that the application's Info.plist contains a value for CFBundleIdentifier.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-
iphonesimulator/AbilingApp.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์— ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

react-native upgrade ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ ์ด ์Šค๋ ˆ๋“œ์˜ ๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Xcode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์—ˆ๊ณ  /node_modules/react-native/third-party/boost_1_63_0/boost ํด๋”์— ๋ช‡ ๊ฐ€์ง€ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋นˆ ํด๋”๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์ธํ„ฐ๋„ท์—์„œ ๊ฒ€์ƒ‰ ํ•ด์„œ ๋ถ€์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ๋‹ค์šด๋ฐ›์•„ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ์ด์ œ Xcode์—์„œ ์ž˜ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€๋งŒ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

* ๋นŒ๋“œ ์„ฑ๊ณต *

๋‹ค์Œ ๋ช…๋ น์€ ๋ถ„์„๊ธฐ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
/Users/Kash/ReactApps/prod/albums/node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.c ๋ถ„์„
/Users/Kash/ReactApps/prod/albums/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.c ๋ถ„์„
(๋ถ„์„๊ธฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” 2๊ฐœ์˜ ๋ช…๋ น)

react-native upgrade ์€(๋Š”) ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

์ €๋Š” PODS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. xcworkspace ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  'pod install'์„ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ณ ์ณค์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์†”๋ฃจ์…˜์ด ์‹œ๋„๋˜์—ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.(. ๊ทธ๋Ÿฌ๋‚˜ ํฌ๊ธฐํ•˜์ง€ ๋งˆ์„ธ์š”~

๊ทธ๋Ÿฐ ๋‹ค์Œ cocoapods๋ฅผ ์„ค์น˜ํ•˜๊ณ  ios ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ $# pod install ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ์ผ๋ถ€ ๊ฐ€์ ธ์˜ค๊ธฐ ํŒŒ์ผ(react-native 0.44์˜ ๋ฒ„๊ทธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ npm ์Šคํฌ๋ฆฝํŠธ :
"postinstall": "sed -i '' 's/#import <RCTValueAnimatedNode.h>/#import \"RCTValueAnimatedNode.h\"/' ./node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h",
๊ทธ๊ฒƒ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
npm start ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฉด watchman์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ์žฌ์„ค์ •ํ–ˆ๊ณ  ๋ชจ๋‘ ๋‹ค์‹œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ ์ฝ˜ํ…์ธ  ๋ฐ ์„ค์ • ์žฌ์„ค์ •... ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ react-native๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์–˜๋“ค ์•„,
ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์— ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค .... ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@renguochao ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ œ์•ˆ์„ ๋”ฐ๋ฅด๊ธฐ ์œ„ํ•ด ํ•˜๋ฃจ ์ข…์ผ์„ ๋ณด๋‚ธ ํ›„ ๋งˆ์นจ๋‚ด ๋‚ด ํ„ฐ๋ฏธ๋„์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค! :)

๋‚ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์œ„ :CFBundleIdentifier", ์กด์žฌํ•˜์ง€ ์•Š์Œ ์˜ค๋ฅ˜ lRCTBEEPickerManager ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋‚ด Xcode ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. => ๋นŒ๋“œ ๋‹จ๊ณ„= > ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ ์—ฐ๊ฒฐ

๋ช…์‹œ๋œ ๋ชจ๋“ˆ(lRCTBEEPickerManager)์„ ์ œ๊ฑฐํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

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

์ด ์Šค๋ ˆ๋“œ์— ์ œ๊ณต๋œ ๊ฑฐ์˜ ๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๊ณ  ์ผ๋ถ€๋Š” ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Facebook์—์„œ ์ผํ•œ ์นœ๊ตฌ๋Š” react native cli๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ์‹œ์Šคํ…œ์— YARN์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ ์ƒˆ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ˆ˜์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ์ด ๋‹ต๋‹ตํ•œ ์ผ์„ ๋‘ ๋‹จ๊ณ„๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. rm -rf ~/.rncache
  2. react-native cli npm install -g react-native-cli ๋‹ค์‹œ ์„ค์น˜

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  react-native run-ios๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋„ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์„ค์ •:

  • ์—‘์Šค์ฝ”๋“œ 8.3.3
  • ๋…ธ๋“œ v8.3.0
  • npm v5.3.0
  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ v0.47.1

Xcode์—์„œ ๋‚ด ์•ฑ์„ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†”(react-native run-ios)์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ,

GitHub์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.
์ž˜ ๋ชจ๋ฅด์ง€๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
1๋‹จ๊ณ„: node_module ์‚ญ์ œ
2๋‹จ๊ณ„: ๋นŒ๋“œ ํด๋” ์‚ญ์ œ
3๋‹จ๊ณ„: npm/yarn ์„ค์น˜
4๋‹จ๊ณ„: ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ
5๋‹จ๊ณ„: ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋งํฌ
์ด์ œ ๋„ค์ดํ‹ฐ๋ธŒ run-ios/android์— ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"react-native upgrade"๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํด๋” ์ด๋ฆ„์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํด๋” ์ด๋ฆ„์—๋Š” ๊ณต๋ฐฑ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Xcode๊ฐ€ ์ฐจ์ง€ํ•˜์ง€ ์•Š๋Š” ๊ณต๊ฐ„์ด ์žˆ์œผ๋ฉด ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๊ณ  ์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ณ ์น  ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€.

๋‚ด๊ฐ€ ํ•œ ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
1) ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ์— ๊ณต๋ฐฑ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
2) CD
3) '๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ' ๋ช…๋ น ์‹คํ–‰
4) ๊ธฐ๋ณธ ios ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ xcode ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
5) ํŒŒ์ผ > ํ”„๋กœ์ ํŠธ ์„ค์ • > ๊ณ ๊ธ‰...์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
6) ์‚ฌ์šฉ์ž ์ •์˜ > ์ž‘์—… ๊ณต๊ฐ„ ๊ธฐ์ค€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
7) ์ œํ’ˆ ๊ฒฝ๋กœ๋Š” '๋นŒ๋“œ/๋นŒ๋“œ/์ œํ’ˆ'์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
8) ์ค‘๊ฐ„ ๊ฒฝ๋กœ๋Š” '๋นŒ๋“œ/๋นŒ๋“œ/์ค‘๊ฐ„'์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
9) ์ด์ œ ํ„ฐ๋ฏธ๋„ 'react-native run-ios'์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

์ด ์†”๋ฃจ์…˜์ด ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•œ ์šฐ๋ฆฌ ์ค‘ ์ผ๋ถ€์—๊ฒŒ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋ฃจํŠธ ~ ๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค(๊ฒฝ๋กœ์—์„œ ๊ณต๋ฐฑ ์ œ์™ธ)
  2. ProjectName/ios/build ํด๋”๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. react-native run-ios

๋‹น์‹ ์ดํ•ด์•ผ ํ•  ๋ชจ๋“ 
1. react-native init ํ”„๋กœ์ ํŠธ ์‹คํ–‰

  1. CD ํ”„๋กœ์ ํŠธ
  2. npm ์„ค์น˜
  3. react-native run-ios์™€ ๋‹น์‹ ์€ ํ™ฉ๊ธˆ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค!

๋…ธ๋ ฅํ•˜๋‹ค

  1. react-native init ProjectName --version 0.44.3
  2. sudo chmod -R 777 ProjectName
  3. react-native run-ios
  4. react-native run-android

์ด๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
@gvlamadrid ๊ฐ€ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋นŒ๋“œ ํด๋” rm -rf ios/build ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.48๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ

@crajesh238 - ๋นŒ๋“œ ํด๋”๋ฅผ ์กฐ์ •ํ•œ ๋‹ค์Œ ๋‚ ๋ ค ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋‚ด๊ฐ€ ๋งํ•œ ๊ฒƒ์„ ์‹œ๋„ ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์—†์œผ๋ฉฐ ์ œ๊ณต๋œ ๋ชจ๋“  ์˜ต์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค... ๋‹ค๋ฅธ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

  • ๋งˆ๋””
  • npm / ์›์‚ฌ
  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI
  • ์—‘์Šค์ฝ”๋“œ
  • ์—‘์Šคํฌ(์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ)

@arun0009 ์ผํ–ˆ์Šต๋‹ˆ๋‹ค :)

npm install react-native-git-upgrade ๋ฐ react-native-git-upgrade ๋กœ ์ „์ฒด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ƒํƒœ๊ณ„๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๊ณ  ๋งˆ์นจ๋‚ด ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. :)

๋‚˜์—๊ฒŒ ๊ทธ๊ฒƒ์€ :8081 ํฌํŠธ์—์„œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ๋งŒ ํผ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์˜๋ฌธ:
'boost/iterator/iterator_adaptor.hpp' ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ' ๋ฐ ":CFBundleIdentifier", ์กด์žฌํ•˜์ง€ ์•Š์Œ

์ด์œ :

  • /Users/Vanessa/.rncache boost_1_63_0.tar.gz, double-conversion-1.1.5.tar.gz, folly-2016.09.26.00.tar.gz, glog-0.3.4.tar.gz ---์ด ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๋ถˆ์™„์ „ํ•œ

์†”๋ฃจ์…˜:
1๋‹จ๊ณ„: ๋‹ค์Œ๊ณผ ๊ฐ™์ด .rncache๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
--> rm -rf node_modules && rm -rf ~/.rncache && yarn
2๋‹จ๊ณ„:--> npm install
3๋‹จ๊ณ„:--> react-native upgrade
4๋‹จ๊ณ„:--> react-native run-ios

๋‚˜์—๊ฒŒ ํ•ด๊ฒฐ์ฑ…์€ Xcode์—์„œ Build Active Architecture Only๋ฅผ Yes๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. Xcode ํ”„๋กœ์ ํŠธ > ๋นŒ๋“œ ์„ค์ • > ํ™œ์„ฑ ์•„ํ‚คํ…์ฒ˜๋งŒ ๋นŒ๋“œ > ๋””๋ฒ„๊ทธ > ์˜ˆ.

๋‚˜๋ฅผ ์œ„ํ•ด ๋นŒ๋“œ ์œ„์น˜๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์„ค์ •ํ•˜๋ฉด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
XCode->Preferencec->์œ„์น˜->๊ณ ๊ธ‰->๋นŒ๋“œ ์œ„์น˜->๊ณ ์œ 

  1. ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๋ฐ์ดํŠธ ์„ค์น˜
    npm install -g react-native-git-upgrade

  2. ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๋ฐ์ดํŠธ
    react-native-git-upgrade

  3. sudo๋กœ ์‹คํ–‰
    sudo react-native run-ios

Expo ๋˜๋Š” CRNA์—์„œ ๊บผ๋‚ด๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ œ๋Œ€๋กœ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ์ด ๋‹จ๊ณ„์— ์ด๋ฅด๋ €์ง€๋งŒ atm..๋กœ ์žฌ์ƒํ•  ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ข‹์€ ์˜ค๋ž˜๋œ react-native-cli๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Github์—์„œ ์™„์ „ํžˆ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋™์ผํ•œ ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์ œํ•  ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์—ฐ๊ฒฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ react-native ๋งํฌ๋ฅผ ์‹คํ–‰ํ•˜๋‹ˆ ๋ชจ๋“  ๊ฒƒ์ด ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค. ์•„์ง ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ --๋ฒ„์ „ 0.44.2
react-native run-ios๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” Info.plist์— CFBundleIdentifier ๋ฅผ ํ•˜๋“œ ์ฝ”๋”ฉํ–ˆ๋Š”๋ฐ ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>

ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
react-native init AwesomeApp --version 0.44.3 react-native run-ios
OS ๋ฒ„์ „: ํ•˜์ด ์‹œ์—๋ผ
๋…ธ๋“œ: 7.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๊ณ  ๋นŒ๋“œ ํด๋” ๊ถŒํ•œ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ios/build ๋ฐ ๋ชจ๋“  ํ•˜์œ„ ํด๋”์— ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ํ• ๋‹นํ•˜์—ฌ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

chmod 777 ios/build

ios/build ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์ค‘์ฒฉ ํด๋”์—๋„ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ์— ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ด๋“  react-native upgrade ๋Š” ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ configure ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— glog์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์ƒ์œ„ ํด๋”์— ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ:

  • glog ์ปดํŒŒ์ผ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • glog ๊ฐ€ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— $ config.h ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

  • ${yourProject}/node_modules/react-native ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
  • ./third-party/ ์ œ๊ฑฐ
  • scripts/ios-install-third-party.sh ์‹คํ–‰์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

์ ์–ด๋„ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ ํŽ˜์ด์ง€ ์— ์ถ”๊ฐ€ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋ฅผ ์œ„ํ•ด ๋ฐ˜์‘ ๋ฐ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ž‘์—…์„ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค :)

runIOS.js ์—์„œ ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. $ Build ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.
ํ•ด์•ผํ•œ๋‹ค:

const getBuildPath = function(configuration = 'Debug', appName, isDevice) {
  return `build/Products/${configuration}-${isDevice ? 'iphoneos' : 'iphonesimulator'}/${appName}.app`;
};

@hazam , ๋‚ด ๋นŒ๋“œ์—์„œ๋Š” build/Build ์•„๋ž˜์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ @brianneisler ์˜ ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” XCode 9์™€ 6s์šฉ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” XCode์—์„œ ์‹œ์ž‘ํ•  ๋•Œ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ react-native run-ios๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์„ค์น˜๋œ ๋‹ค์Œ ์—ด๋ฆฌ๊ณ  ์ฆ‰์‹œ ๋‹ค์‹œ ๋‹ซํž™๋‹ˆ๋‹ค.

๋‚ด ์•ฑ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  iOS/Android ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  react-native eject ๋ฅผ ์‹คํ–‰ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ ์ƒ์„ฑ๋œ .xcodeproj ํŒŒ์ผ์„ ์—ด๋ ค๊ณ  ํ•˜๋ฉด Xcode์—์„œ ์—ด๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด ์ˆ˜์ •์€ app.json ์—์„œ "์ด๋ฆ„"์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ณต๋ฐฑ์ด ์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค(๋‚ด ์•ฑ ์ด๋ฆ„์—๋Š” 3๋‹จ์–ด๊ฐ€ ์žˆ์Œ). "displayName"์˜ ๊ณต๋ฐฑ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ๋ฅผ 8+๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  react-native run-android ๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!

๋‚˜๋Š” ์ด๊ฒƒ์ด ํŒจํ‚ค์ €( yarn start )๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•  ๋•Œ์™€ react-native run-ios ํŒจํ‚ค์ €๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ธ์Šต๋‹ˆ๋‹ค.

react-native run-ios ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊นจ์ง„ ์ƒํƒœ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ๊ณ  react-native run-ios ๋ฅผ ๋‹ค์‹œ ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  1. .watchmangconfig ๋ฅผ ๋นˆ ๊ฐ์ฒด๋กœ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค: {} ์—ฌ๊ธฐ ํ…œํ”Œ๋ฆฟ์ฒ˜๋Ÿผ.
  2. ๋ชจ๋“  ๊ฒƒ์„ ํŒŒ๊ดดํ•˜์‹ญ์‹œ์˜ค: watchman watch-del-all && rm -rf node_modules && yarn install && yarn start -- --reset-cache (๊ทธ๋ ‡๋‹ค๋ฉด ์›์‚ฌ ๋Œ€์‹  npm์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.)
  3. react-native run-ios

https://github.com/facebook/react-native/issues/7308#issuecomment -250231736 ๋งˆ์นจ๋‚ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ์ด ์˜ค๋ฅ˜๋Š” git์— ์˜ํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Git pull์ด ์ž๋™ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ ์„ฑ๊ณต์ ์œผ๋กœ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Atom open info.plist ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ >>>>>> ๋˜๋Š” HEAD ๋˜๋Š” >>>>>> HEAD , ์ถฉ๋Œ ์ˆ˜์ •, ์ €์žฅ, ์™„๋ฃŒ.

์–ด๋ฆฌ์„์€ ์ผ์ด์ง€๋งŒ ์ œ ๊ฒฝ์šฐ์—๋Š” ๊ฐ„๋‹จํ•œ ์žฌ๋ถ€ํŒ…์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@malikmani ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋จผ์ €, ios ํด๋”์— asset์ด๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์—‘์Šคํฌ์—์„œ ํ‡ด์žฅ ํ›„. ๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๊ฑฐ์˜ ๋ฐ˜๋‚˜์ ˆ ๋™์•ˆ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ทธ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

1.) ๊ณต๋ฐฑ์ด๋‚˜ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฃจํŠธ(~) ๋””๋ ‰ํ† ๋ฆฌ(High Sierra์™€ ํ•จ๊ป˜ Mac์„ ์‚ฌ์šฉ ์ค‘)๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.
2.) "Project/ios/build" ํด๋” ์ œ๊ฑฐ
์œ„์˜ 2๋‹จ๊ณ„ ํ›„์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ Expo๋Š” ์„œ๋ฒ„์—์„œ ์•ฑ์„ ๋กœ๋“œํ•˜์—ฌ ์ž์ฒด ๋ณด๊ธฐ์—์„œ ์•ฑ์„ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.. .".

_๋“œ๋””์–ด ์ด๋ ‡๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:_
3.) ExpoKit ํฌ๋“œ ๋‚ด๋ถ€์˜ ๋นŒ๋“œ ์„ค์ •์— "DEBUG=0" ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

expo eject issue - resolved

๋‚˜๋Š” React Native๊ฐ€ ์ถฉ๋ถ„ํžˆ ์„ฑ์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ์–ด๋ฆฌ์„์€ ์ผ์— ๋ฐ˜๋‚˜์ ˆ์„ ์žƒ์„ ๊ฒƒ์ด๋ผ๊ณ ๋Š” ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

Metro ๋ฒˆ๋“ค๋Ÿฌ๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋„์—์„œ ์‹œ์ž‘๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ react-native run-ios ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„ ์ฐฝ์ด ์—ด๋ฆฌ๊ณ  Metro Bundler๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ CLI: 2.0.1
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.51.0
OSX 10.12.6
์—‘์Šค์ฝ”๋“œ 9.1

@consideRatio ์˜ ์ œ์•ˆ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค!

xcode ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด๊ณ  ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ด ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ด€๋ จ ์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(์ด ๊ฒฝ์šฐ๊ฐ€ ํ•ด๋‹น๋จ). ๋ˆ„๋ฝ๋œ ๊ธ€๊ผด ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ํƒœ์–‘ ์•„๋ž˜์—์„œ ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•œ ํ›„์ด ์˜๊ฒฌ์œผ๋กœ ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ios/ ๋˜๋Š” android/ ์‚ญ์ œ
  2. react-native eject <-- ์ด๊ฒƒ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ํ•œ ์ผ์ž…๋‹ˆ๋‹ค.
  3. react-native-git-upgrade
  4. react-native link
  5. react-native run-ios

๋‚˜๋Š” ๋งˆ์นจ๋‚ด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
1) ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๋ชจ๋“  ์งˆ๋ฌธ์— ๋Œ€ํ•ด 'y'๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
2) ios ํด๋” ์•ˆ์— ์žˆ๋Š” ๋นŒ๋“œ ํด๋” ์‚ญ์ œ
3) ๋งˆ์นจ๋‚ด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ iOS

์ฐธ๊ณ : ์œ„์˜ 3๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— commad react-native-git-upgrade๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

ํ•ด๊ฒฐ์ฑ…:

  1. ํŒจํ‚ค์ง€ ๋งํฌ ๊ธฐ์–ต >> ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋งํฌ
  2. react-native ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ >> react-native-git-upgrade

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ => ๋ชจ๋‘ ๊ต์ฒด !!! ue-link๋ฅผ ๋‹ค์‹œ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค(1 ์ฐธ์กฐ).

  1. watchman watch-del-all
  2. ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  ios/build๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค.

์ด์— ๋Œ€ํ•œ ๋‚ด ์†”๋ฃจ์…˜์€ cd ios && pod install ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—ฐ๊ฒฐ ํ•ด์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
์ œ ๊ฒฝ์šฐ์—๋Š” IOS ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณตํ•˜๊ณ  ๊ทธ ํ›„์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

** BUILD SUCCEEDED **
The following commands produced analyzer issues:
    Analyze /Users/shyam/projects/master-chat-app/master-mobile-chatbot/node_modules/react-native/ReactCommon/yoga/yoga/YGNodeList.c
    Analyze /Users/shyam/projects/master-chat-app/master-mobile-chatbot/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.c
    Analyze Base/RCTModuleMethod.mm
(3 commands with analyzer issues)

Installing build/Build/Products/Debug-iphonesimulator/mastermobilechatbot.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/mastermobilechatbot.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

๋„์›€์ด ๋˜์…จ๋‚˜์š”?

@shyam528 yoga ์™€ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋งค์šฐ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ–ˆ๋‹ค:

cd ios
pod update yoga

๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ ์ „์— cocoapods๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ–ˆ๊ณ  ๊ทธ ์ „์— ruby โ€‹โ€‹2.4.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ _Xcode Build Location_์˜ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Xcode -> ๊ธฐ๋ณธ ์„ค์ • -> ์œ„์น˜ -> ๊ณ ๊ธ‰์—์„œ ๊ณ ์œ  ํ•˜๊ฒŒ ์ „ํ™˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ์ด์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ๋ฐ˜์‘ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ๋‚ด ํฌ๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•˜๋ ค๋ฉด IOS ํด๋”์—์„œ xproj๋ฅผ ๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๊ธฐํ˜ธ๊ฐ€ ๋งŽ์ด ํ‘œ์‹œ๋˜๋ฉด ๊ฐ ๊ธฐํ˜ธ๋ฅผ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๊ณ  ๋ชจ๋‘ ์‚ฌ๋ผ์งˆ ๋•Œ๊นŒ์ง€ "๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ˆ˜ํ–‰"์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋œ Pod์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ๊ต์ฒดํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•œ ํ›„์—๋Š” react-native run-ios์—์„œ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@robertkent ์˜ ์˜๊ฒฌ์— ๋ง๋ถ™์ด์ž๋ฉด, ๋‚˜๋Š” ์–ด๋–ค ์ด์œ ๋กœ cocoapods ์บ์‹œ์— ์ž˜๋ชป๋œ ๋ฒ„์ „์˜ Pod๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹ธ์›€์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Cocoapods๋Š” ํŠน์ • ๋ฒ„์ „์˜ Pod๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋‚ด ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ ๋ชจ๋“  ํฌ๋“œ๋ฅผ ์ง€์› ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ๋ฅผ ์ง€์šฐ๋ ค๋ฉด ๋‹ค์Œ ์ฃผ์„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. https://gist.github.com/mbinna/4202236#gistcomment -1814665

๋‚ด ์‚ฌ์šฉ์ž ๋””๋ ‰ํ„ฐ๋ฆฌ( ~/.cocoapods )์— ์žˆ๋˜ ํฌ๋“œ ์บ์‹œ๋„ ์ œ๊ฑฐํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด ํ•„์š”ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Cocoapods์—๋Š” ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด์˜ ์บ์‹ฑ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ €์—๊ฒŒ ํฐ ๊ณ ํ†ต์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค........ >=( ๋ชจ๋“  ๊ฒƒ์ด ์–ด์ œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ React Native ๊ณต์‹ ๊ฐ€์ด๋“œ์—์„œ ์ถ”์ฒœํ•œ ์ƒˆ๋กœ์šด fency Ionic Library์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์„ค์น˜ํ•˜๋ ค๋ฉด 100๊ฐœ์˜ ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜์— ์ง๋ฉดํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๊ณ (๋ฌธ์„œ ๋•๋ถ„์—) ์ด์ œ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๋‚œ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด ์™”์œผ๋ฉฐ, ์ง€๊ธˆ์€ ์˜ค์ „ 2์‹œ 10๋ถ„์ด๊ณ  4์‹œ๊ฐ„ ํ›„์— ์ผ์–ด๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ๋ฅผ ๋ชฐ๊ณ  ์ถœ๊ทผํ•˜์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ ์ž ์„ ์ž˜ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

@MrIceman ์ด ๋ชจ๋“  ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•œ ๊ฒƒ์€ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ•˜๋‚˜์”ฉ ์„ค์น˜ํ•˜์—ฌ ์–ด๋–ค ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์Œ, ๋ฐฉ๊ธˆ react-native-navigation ๋ฐ react-native-camera๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ๋”ํ‹ฐ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

React-native๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๋‹ค๋ฉด pod์—์„œ ์š”๊ฐ€๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ RN์„ 0.54.0์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
cd ios && pod update yoga

8081์ด ์‚ฌ์šฉ์ค‘์ธ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.
nginx -s stop ์€(๋Š”) ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
ใ…‹ ใ…‹ ใ…‹

๋ฐฉ๊ธˆ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ react-native-cli๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ
rm -R /usr/local/bin/๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ
npm install -g react-native-cli
๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” myapp ๋ฐ˜์‘
CD ๋งˆ์ด์•ฑ
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰ iOS

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

7308(๋Œ“๊ธ€)์ด ๋งˆ์นจ๋‚ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

react-native upgrade ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜์‘์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋ชจ๋“  iOS ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค!

package.json ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  npm install ์„ ์‹คํ–‰ํ•œ ํ›„ iOS์—์„œ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Android์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

rm -rf ios/build/

๋นŒ๋“œ ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ v0.55์—์„œ v0.54๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

allllll์„ v0.52.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ๋งž๋Š” ์œ ์ผํ•œ ๋ฒ„์ „

react-native v0.55.0์€ ์‹ค์ œ๋กœ ์ด๊ฒƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์‹ญ์‹œ์˜ค. https://github.com/facebook/react-native/issues/18681

์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด xcode ๋ฒ„์ „์€ 8.3.2์˜€์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ react-native๋ฅผ 0.55.0์—์„œ react-native v0.50.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋žฉํ†ฑ์—์„œ xcode ๋ฒ„์ „์ด 9.3์ธ ๊ณณ์—์„œ ์‹œ๋„ํ•˜๊ณ  ๋ฐ˜์‘ํ–ˆ์Šต๋‹ˆ๋‹ค. -native v0.55.0์€ ๊ฑฐ๊ธฐ์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€.
์—‘์Šค์ฝ”๋“œ 8.2.1
๋…ธ๋“œ v9.3.0

react-native์˜ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์€ ๋นŒ๋“œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค(0.55.2, 0.55, 0.54).
๊ทธ๋Ÿฌ๋‚˜ react-native 0.53.0์—์„œ๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ดˆ๊ธฐํ™” MyApp --๋ฒ„์ „ "0.53.0"

๊ธฐ๋ณธ RN ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ฐ˜์‘: xcode ๋ฒ„์ „ ์š”๊ตฌ, ๋…ธ๋“œ ๋ฒ„์ „ ๋˜๋Š” ๊ธฐํƒ€
์˜ˆ: rn 0.54 xcode >9.1 , ๋…ธ๋“œ >6.5 ๋ฐ android sdk >24(๋‹ค๋ฅธ ์ข…์†์„ฑ ํ•„์š”)

์ €๋Š” ์ œ ๋งฅ๋ถ์„ ์บกํ‹ด์—์„œ ์‹œ์—๋ผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.
์‹œ์—๋ผ์—์„œ๋Š” ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์˜ xcode(9.3)๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ํ•˜๋ฉด ์œ„์˜ ์‚ฌํ•ญ์ด ์ˆ˜์ •๋˜์ง€ ์•Š์œผ๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

  1. react-native-git-upgrade๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. Xcode -> ํŒŒ์ผ -> ํ”„๋กœ์ ํŠธ ์„ค์ • -> ๊ณ ๊ธ‰์„ ์—ฝ๋‹ˆ๋‹ค.
  3. "_Custom_"์„ ์„ ํƒํ•œ ๋‹ค์Œ "_Relative to Workspace_"๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์™„๋ฃŒ, ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. CLI๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. npm i -g react-native-cli
  5. Nodejs 8 ๋ฐ NPM์„ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. nvm install --lts ๋ฐ nvm install-latest-npm
  6. ios/build ๋ฐ node_modules ์ œ๊ฑฐ(ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๊ฒฝ๋กœ์—์„œ)
  7. npm install ์™€ react-native run-ios ๋กœ ๋‹ค์‹œ ์ง„ํ–‰ํ•˜๊ณ  ์•ˆ์•„์ฃผ์„ธ์š” :-)

๋งˆ์นจ๋‚ด ์—ฌ๊ธฐ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ๋งฅ OS ํ•˜์ด ์‹œ์—๋ผ 10.13.4
  • ์—‘์Šค์ฝ”๋“œ 9.3
  • NPM 5.8.0
  • ๋…ธ๋“œ 8.11.1
  • RN 0.55.2
  • ios/ ๋ฐ android/ ํด๋” ์ œ๊ฑฐ
  • ์›์‚ฌ ์„ค์น˜
  • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๊บผ๋‚ด๊ธฐ

๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค!

์—ฌ์ „ํžˆ CfBundleIdentifier ๋ฌธ์ œ

์ธ์‡„: ":CFBundleIdentifier" ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

npm ์˜ค๋ฅ˜! ์ฝ”๋“œ ELIFECYCLE
npm ์˜ค๋ฅ˜! ์˜ค๋ฅ˜ ๋ฒˆํ˜ธ 1
npm ์˜ค๋ฅ˜! [email protected] ios: react-native run-ios
npm ์˜ค๋ฅ˜! ์ข…๋ฃŒ ์ƒํƒœ 1
npm ์˜ค๋ฅ˜!
npm ์˜ค๋ฅ˜! [email protected] ios ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
npm ์˜ค๋ฅ˜! ์ด๊ฒƒ์€ ์•„๋งˆ๋„ npm์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์ถ”๊ฐ€ ๋กœ๊น… ์ถœ๋ ฅ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด VSC ์ฝ˜์†”์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ -> ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ณ ๊ธ‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค
"Custom"์„ ์„ ํƒํ•˜๊ณ  ํ’€๋‹ค์šด์—์„œ "Relative to Workspace"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
ํด๋ฆญ ์™„๋ฃŒ, ์™„๋ฃŒ
๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋ฅ˜๋Š” ์—ฌ์ „ํžˆ ๋™์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ Xcode๋ฅผ ์—ด๊ณ  ์ปดํŒŒ์ผ์„ ์‹œ๋„ํ–ˆ๋Š”๋ฐ react-native-maps์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž๋™ ์ˆ˜์ •์„ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

React Native์—์„œ Swift xD๋กœ ์ „ํ™˜

์ด ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€์„ธ์š” ๐Ÿ‘

https://stackoverflow.com/questions/37461703/print-entry-cfbundleidentifier-does-not-exist

ios/build ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  Xcode๋ฅผ ์—ด๊ณ  ๋นŒ๋“œ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•œ ํ›„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค.

๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 2์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

react-native upgrade ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์€ ๋‚ด React-Native ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ(๋ฉ”์ธ ๋””๋ ‰ํ† ๋ฆฌ)๋กœ ์ด๋™ํ•˜์—ฌ ios ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„์— react-native eject ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋‹ค๋ฅธ ios ํด๋”๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„, ๊ทธ๊ฒƒ์€ ์ฆ‰์‹œ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ios ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•ด์•ผ ํ•  ์ค‘์š”ํ•œ ๊ฒƒ์ด ์žˆ์ง€๋งŒ ๊บผ๋‚ด๊ธฐ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๋ชจ๋“  ๊ฒƒ์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹ค์‹œ ์ƒ์„ฑ๋œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ Expo๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊บผ๋‚ด๋Š” ๊ฒƒ์€ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. android ํด๋”๋ฅผ ์‚ญ์ œํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ๊บผ๋‚ด๋ฉด ios ๋ฐ android ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ).

react-native upgrade ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋“  ํŒŒ์ผ์„ ์žฌ์„ค์ •ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ git์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋˜๋Œ๋ ธ๊ณ  ์ž˜ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค :) ๋‹ต๋ณ€์„ ์ฃผ์‹  @consideRatio ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜์‘ ์—…๋ฐ์ดํŠธ๊ฐ€ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋ฒ„์ „ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ˜์‘๋„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

getBuildPath ์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฐ’์„ Build/Products/${configuration}-${device}/${appName}.app node_modules/react-native/local-cli/runIOS/runIOS.js ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(์ดˆ๊ธฐ build/ ์ œ๊ฑฐ

์ด๊ฒƒ์€ #18700์˜ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

๋‚ด ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Environment:
  OS: macOS High Sierra 10.13.4
  Node: 8.11.1
  Yarn: 1.6.0
  npm: 5.6.0
  Watchman: 4.7.0
  Xcode: Xcode 9.3 Build version 9E145
  Android Studio: 3.0 AI-171.4443003

Packages: (wanted => installed)
  react: 16.3.2 => 16.3.2
  react-native: 0.55.3 => 0.55.3

์ด๊ฒƒ์„ ๋”ฐ๋ฅด๊ธฐ ์œ„ํ•ด #18700์˜ ์ˆ˜์ • ์‚ฌํ•ญ ์ž‘์„ฑ์ž์™€ ๋…ผ์˜ํ•œ ํ›„ Xcode ํ™˜๊ฒฝ ์„ค์ •์˜ ๋นŒ๋“œ ์œ„์น˜๊ฐ€ "๊ณ ์œ "๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜):

39661487-0680544e-5074-11e8-8c39-a30907e259eb

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ ๋นŒ๋“œ ์œ„์น˜๋ฅผ "Xcode ๊ธฐ๋ณธ๊ฐ’"์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

screen shot 2018-05-05 at 15 09 21

์ด์ „ ์ฃผ์„(React-Native 0.55.3, Xcode 9.3)์— ํ‘œ์‹œ๋œ ํ™˜๊ฒฝ์œผ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ง€๊ทธ์žฌ๊ทธ ํฌ์ปค๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น ๋“ฑ์„ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

  • rm -rf node_modules ๋ฐ rm -rf ios/build ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • @kranzky ๊ฐ€ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • Xcode์—์„œ ๋ชจ๋“  ๋ฏธ์นœ ํ”„๋กœ์ ํŠธ ์„ค์ • ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  react-native upgrade ๋ฐ ์ผ๋ถ€ react native git upgrade ๋„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. react-native๊ฐ€ ๊ณต์‹์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
  • SO & GH ๋ฌธ์ œ๊ฐ€ ๋‚˜์—๊ฒŒ ์š”์ฒญํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋ฌด์—‡์„ ๋” ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค!

์—ฌ์ „ํžˆ ๊ฐ™์€ ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค! ์ ˆ๋Œ€ ํฌ๊ธฐํ•˜๊ณ  ์‹ถ์ง€ ์•Š์ง€๋งŒ, ์ด๊ฑด ๋„ˆ๋ฌด ์›ƒ๊ฒจ! ๋ชจ๋“  ์‚ฌ๋žŒ์ด IT WORKS ๋Œ“๊ธ€์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :D #GLHF

react: 16.3.1
react-native-cli: 2.0.1
react-native: 0.55.3

์œ„์˜ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ณ ์ณค์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์šด์˜ ์ฒด์ œ ์—…๋ฐ์ดํŠธ
  • XCode ์—…๋ฐ์ดํŠธ
  • ํ™ˆ๋ธŒ๋ฅ˜ ์ œ๊ฑฐ ๋ฐ ์žฌ์„ค์น˜
  • nvm ์ œ๊ฑฐ ๋ฐ ๋‹ค์‹œ ์„ค์น˜
  • ์ตœ์‹  ๋ฒ„์ „์˜ ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ์›์‚ฌ ์ œ๊ฑฐ ๋ฐ ์žฌ์„ค์น˜
  • react-native-cli ์ œ๊ฑฐ ๋ฐ ์žฌ์„ค์น˜

  • ์ด๋Ÿฌํ•œ ์—…๋ฐ์ดํŠธ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ๊ฒฐ๊ตญ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. npm run eject ์‹คํ–‰ ํ›„ ์•ฑ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

react-native info
Scanning folders for symlinks in /Users/ksquarelabs/dev/courses/ghost/node_modules (14ms)

Environment:
  OS: macOS High Sierra 10.13.4
  Node: 6.9.1
  Yarn: 0.22.0
  npm: 3.10.8
  Watchman: Not Found
  Xcode: Xcode 9.3.1 Build version 9E501
  Android Studio: 2.3 AI-162.3764568

Packages: (wanted => installed)
  react: 16.3.1 => 16.3.1
  react-native: ~0.55.2 => 0.55.4

๋”ฐ๋ผ์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

cd ./ios/๋นŒ๋“œ
mkdir ๋นŒ๋“œ
CD ๋นŒ๋“œ

๊ทธ๋Ÿฐ ๋‹ค์Œ ํด๋”๋ฅผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌํ•ฉ๋‹ˆ๋‹ค.
ln -s ../์ œํ’ˆ .
ln -s ../์ค‘๊ธ‰

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰ react-native run-ios๊ฐ€ ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ข‹์€ ํ•˜๋ฃจ ๋˜์„ธ์š” :)

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋‚ด ๊ฒฝ์šฐ์—๋Š” fabric node_module dir์˜ ๊ธธ์ด๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ๋ฃจํŠธ( ~ ) dir์—์„œ repo๋ฅผ ๊ฐ€์ ธ ์™€์„œ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค :) ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์›์ธ์„ ์•„์‹œ๋Š” ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”? react-native run-ios --project-path="../" ์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ •์˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด๊ฒƒ์„ ์–ป์Šต๋‹ˆ๋‹ค.

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