React-native: ๋กœ๊ทธ์— "__nw_connection_get_connected_socket_block_invoke ์—ฐ๊ฒฐ์— ์—ฐ๊ฒฐ๋œ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค."

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

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

_ @ hramos ํŽธ์ง‘์ž , ๊ด€๋ฆฌ์ž : _

์ด ์Šค๋ ˆ๋“œ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์†”๋ฃจ์…˜์ด ์ œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

OS_ACTIVITY_MODE

@HADB ์ œ์•ˆ :

  1. Xcode๋ฅผ ์—ฝ๋‹ˆ ๋‹ค.
  2. ์ œํ’ˆ ๋ฉ”๋‰ด๋ฅผ ์—ฝ๋‹ˆ ๋‹ค.
  3. ๊ตฌ์„ฑํ‘œ ํŽธ์ง‘ ...์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์•„๋ž˜์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
    ์ด๋ฆ„ : OS_ACTIVITY_MODE
    ๊ฐ’ : disable
  5. ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

react-devtools

๋˜๋Š” react-devtools ๊ฐ€ ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

ํ•ด๊ฒฐ

์ด๊ฒƒ์€ iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ฐ€์‹œ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ๋Š” ๊ณ„์† ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์€ ํ•ต์‹ฌ ๊ธฐ์—ฌ์ž์—๊ฒŒ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ ๋œ pull ์š”์ฒญ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ๋ฌธ์ œ

ENV

RN 0.32
iOS 10, iPhone 6 Plus

๋ฌธ์ œ

Xcode์˜ ์ฝ˜์†”์€ "__nw_connection_get_connected_socket_block_invoke 6 Connection has no connected handler"๋ฅผ ๊ณ„์† ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

ํ™”๋ฉด

image

Bug Help Wanted Low-Pri iOS

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

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ( ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ).

  1. Xcode ๋ฉ”๋‰ด-> ์ œํ’ˆ-> ์Šคํ‚ค๋งˆ ํŽธ์ง‘ ...
  2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜-> ์ถ”๊ฐ€-> ์ด๋ฆ„ : "OS_ACTIVITY_MODE", ๊ฐ’ : "disable"
  3. ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๐Ÿ˜„

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

+1

+1 RN 0.33์ด์žˆ๋Š” iOS10์—์„œ ์›๊ฒฉ json ๋ฐ์ดํ„ฐ๋ฅผ fetch () ํ•  ์ˆ˜ ์—†์Œ

+1 ios 10.0.1 RN 0.33

+1

+1

+1

+1

iOS 10.0.1 ๋ฐ RN 0.30์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์—ฌ๊ธฐ ์˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ๋”ฐ๋ž๊ณ  ๋” ์ด์ƒ ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๋ฌธ์ œ :
RN 0.34
XCode 8.0
iOS 10.0 ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ

๊ทธ๋Ÿฌ๋‚˜ iOS 9.2 ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@marcpechaitis RCTWebSocket ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ? RTCWebSocket์ด ๋‚ด ๋Œ€์ƒ์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ

screen shot 2016-09-23 at 1 24 20 pm

@marcpechaitis ์— ์‘๋‹ต ์—ฌ๊ธฐ ์ง€์นจ ์‚ฌ์šฉ). ๋”ฐ๋ผ์„œ ๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” ๊ฐ xcodeproj ํŒŒ์ผ์ด ํฌํ•จ ๋œ Libraries ํด๋”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์— ์žˆ์œผ๋ฉฐ ๋Œ€์ƒ ๋‚ด์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
screen shot 2016-09-23 at 1 08 19 pm

+1

RCTWebSocket.xcodeproj๋ฅผ ์ถ”์ ํ•˜๊ณ  ์—ด๊ณ  ๊ฒฝ๊ณ  ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์„ฑ๊ฐ€์‹  __nw_connection_get_connected_socket_block_invoke ๋กœ๊ทธ๋Š” ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด @marcpechaitis ( ์—ฌ๊ธฐ ์ฐธ์กฐ)์—์„œ ์–ธ๊ธ‰ ํ•œ ๋ฐฉ๋ฒ•์€ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ํ†ตํ•ฉ ๋œ ๊ธฐ์กด ์•ฑ (๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์œผ๋กœ ์‹œ์ž‘๋œ ์•ฑ๊ณผ ๋น„๊ต)์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋กœ๊ทธ ํ˜ธ์ถœ์ด ์–ด๋””์—์„œ ์‹œ์ž‘๋˜๋Š”์ง€์กฐ์ฐจ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (obj-c ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ ๋…ธ๋“œ ๋ชจ๋“ˆ์ด ์•„๋‹™๋‹ˆ๋‹ค). ์•„์ง ์กฐ์‚ฌ ์ค‘์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ด๊ฒƒ์€ main.jsbundle์— ๋Œ€ํ•ด ๋นŒ๋“œ ํ•  ๋•Œ๋งŒ ๋ฌธ์ œ๊ฐ€๋ฉ๋‹ˆ๋‹ค ... localhost (๋””๋ฒ„๊ทธ)์— ๋Œ€ํ•ด ๋นŒ๋“œํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋กœ๊ทธ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ RN์—์„œ ๋นŒ๋“œ ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊ทธ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด RN ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๊ณ  ์•ฑ์˜ ํ•ด๋‹น ๋ถ€๋ถ„์ด ๋‚ด๊ฐ€ ๋งŒ๋“  main.jsbundle ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

@marcpechaitis๊ฐ€ ์–ธ๊ธ‰ ํ•œ ๋นŒ๋“œ ์˜ค๋ฅ˜๋Š” RN 0.33์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์˜ค๋ฅ˜๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กญ๊ฒŒ๋„ iOS 10 ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ์‹ค์ œ ์žฅ์น˜์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@matthiasdilger ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. @marcpechaitis ๊ฐ€ OP๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ
screen shot 2016-09-23 at 5 01 17 pm

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ( ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ).

  1. Xcode ๋ฉ”๋‰ด-> ์ œํ’ˆ-> ์Šคํ‚ค๋งˆ ํŽธ์ง‘ ...
  2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜-> ์ถ”๊ฐ€-> ์ด๋ฆ„ : "OS_ACTIVITY_MODE", ๊ฐ’ : "disable"
  3. ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๐Ÿ˜„

@HADB๋Š” ์—ฌ์ „ํžˆ ๋‚˜๋ฅผ ์œ„ํ•ด ์žฅ์น˜์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์„œ๋ช… ์ธ์ฆ์„œ ๋ฐ ๊ถŒํ•œ์„ ์žฌ ํ• ๋‹นํ•˜์—ฌ ์ด์ œ ์žฅ์น˜ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž‘๋™ํ•˜๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค.

Xcode 8.0, ios10, ์•„์ดํฐ 5s

RCTWebSocket ๋Œ€์ƒ์˜ ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ • ์•„๋ž˜์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
rctwebsocket xcodeproj

์ด ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด info.plist์— ์˜ˆ์™ธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ์‹ค์ œ ์ „ํ™”์—์„œ ๋‚ด ํŒจํ‚ค์ง€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. OS_ACTIVITY_MODE์—์„œ๋„ ์–ธ๊ธ‰ ๋œ @HADB์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋„๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•ฉ๋ฒ•์  ์ธ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

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

+1

RN 0.34.0
iOS 10.0.1
์•„์ดํฐ 5S

iOS 10 ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ __nw ๊ด€๋ จ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋„ ๋งŽ์ด๋ฐ›์Šต๋‹ˆ๋‹ค.

+1

RN 0.35.0-rc.0
IOS 10.1
์•„์ดํฐ 7 ํ”Œ๋Ÿฌ์Šค

+1

์ด๊ฒƒ์€ React Native๊ฐ€ ์•„๋‹Œ iOS 10 ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://twitter.com/xenadu02/status/776669668404629504

OS_ACTIVITY_MODE=disable ( HADB์—์„œ ์ œ์•ˆํ•œ๋Œ€๋กœ )๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ์ผํ•œ ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

@aleclarson ๋กœ๊ทธ ๋ถ€๋ถ„์— ๋™์˜ํ–ˆ์ง€๋งŒ react-native๊ฐ€ ์—ฌ์ „ํžˆ IOS 10์—์„œ ๋ฒˆ๋“ค ํŒŒ์ผ์„ ๊ฐ€์ ธ

@ frnk94 ๋‹น์‹ ์€ .jsbundle ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์€ ๋‚ด ๊ฐœ๋ฐœ ๋ฒˆ๋“ค์„ ์ž˜ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์ด์—†๋Š” ๊ฒฝ์šฐ ์˜ค๋ž˜๋œ AppDelegate.m ์‚ฌ์šฉํ•˜๊ณ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

@alanchenup ๋‚ด AppDelegate.m์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ • ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! :). ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

xcode ๋ฉ”๋‰ด ๋ช…๋ น์œผ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ œํ’ˆ-> ์ฒญ์†Œ
๋ฐ (์˜ต์…˜ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ์žˆ์Œ)
์ œํ’ˆ-> '๋นŒ๋“œ ํด๋” ์ •๋ฆฌ'

+1

RN 0.34.0
iOS 10.0.1
์•„์ดํฐ 5S

iOS 10 ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ ์‹ค์ œ iPhone 5S์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@pietgk ์ €์—๊ฒŒ ๊ทธ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ๊ทธ๋Ÿฐ ํ–‰์šด์ด ์—†์Šต๋‹ˆ๋‹ค.

OS_ACTIVITY_MODE=disable ์ž‘๋™ํ•˜์ง€๋งŒ ์žฅ์น˜์—์„œ ์‹คํ–‰ํ•  ๋•Œ NSLog ๋ฌธ์„ _all_ ์ˆจ๊ธด๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ํ•ต ์˜ต์…˜์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์žฅ์น˜์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ง€๊ธˆ์€ ๋กœ๊ทธ ์˜ค์—ผ์œผ๋กœ ์‚ฌ๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๋‹ค.

@aleclarson @ frnk94 ์‚ฌ์‹ค, ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์ง„์งœ ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Sending websocketFailed with no listeners registered.

๋ฌผ๋ฆฌ์  ์žฅ์น˜์˜ ์„œ๋ฒ„์—์„œ๋„ js๋ฅผ ๋‹ค์‹œ๋กœ๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

+1

+1

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

+1

react-native log-ios ๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ๋””๋ฒ„๊น…๊ณผ ์ฝ˜์†” ๋””๋ฒ„๊น…์ด ๋ชจ๋‘์žˆ์„ ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ๋””๋ฒ„๊น…์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@warrenronsiek ์›๊ฒฉ ๋””๋ฒ„๊น…์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@JansenLi ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅธ๋‹ค๋ฉด ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ command + D๋ฅผ ๋ˆ„๋ฅด๋ฉด 'Debug JS Remotely'๋ฅผ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜์žˆ๋Š” ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

+1

+1

๋‚ด ํœด๋Œ€ํฐ์ด Wi-Fi์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜์„ ๋•Œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค .. ๐Ÿ™ˆ

์œ„์˜ HADB ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ XCode8์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹จ๊ณ„๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. Xcode ์•ฑ -> ์ œํ’ˆ-> ๊ตฌ์„ฑํ‘œ -> ๊ตฌ์„ฑํ‘œ ํŽธ์ง‘ ...
  2. ์‹คํ–‰-> ์ธ์ˆ˜-> ํ™˜๊ฒฝ ๋ณ€์ˆ˜-> ์ถ”๊ฐ€ (+) -> ์ด๋ฆ„ : "OS_ACTIVITY_MODE", ๊ฐ’ : "disable" -> ๋‹ซ๊ธฐ
  3. ์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๐Ÿ˜„
    ์ด๊ฒƒ์€ ์‹คํ–‰ ์ค‘ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜์ง€๋งŒ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

+1

๋„์›€์ด๋˜์ง€ ์•Š์Œ, ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋ ค๊ณ 

์—ฌ์ „ํžˆ ์กด์žฌ

RN 0.40.0
iOS 10.1
iPhone 6 ์ด์ƒ

( react-native init ์ƒˆ๋กœ ์„ค์น˜)

๋กœ๊ทธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜๊ณ  ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ด๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ / ๋ฌด์—‡์ธ์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

+1

+1

+1

+1
iOS 10.2
RN 0.35

+1
iOS 10.2
RN 0.40

ํ‰๊ฐ€์ค‘์ธ 'react-native-router-flux'ํ”„๋กœ์ ํŠธ์—์„œ '__nw_connection_get_connected_socket_block_invoke'๋ฉ”์‹œ์ง€ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ 1 ์ดˆ์— ํ•œ ๋ฒˆ์”ฉ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์œผ๋กœ node_modules ๋“ฑ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€๋Š” ์ปดํŒŒ์ผ ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์˜จ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

https://github.com/facebook/react-native/issues/10027#issuecomment -261608678 ๋˜๋Š” http://stackoverflow.com/a/39461256/158525๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค
iOS 10์ด ์„ค์น˜๋œ Xcode 8์€ ํ›จ์”ฌ ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋””๋ฒ„๊ทธ ๋ฌธ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

+1 RN0.34 ๋ฐ RN0.32

RN 0.40 ๋ฐ XCode 8.2.1์—์„œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

+1

+1

+1
iOS 10.2
RN 0.35

๋‚˜๋ฅผ ์œ„ํ•ด์ด ๋ฌธ์ œ๋Š” rn0.40์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

+1
Xcode 8.2.1
RN : 0.40

2 ๊ฐœ์˜ Mac์— ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๊ณ  node / npm์„ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค (๋”ฐ๋ผ์„œ ๋ชจ๋“  ์ „์—ญ ์ข…์†์„ฑ). ๋‹ค๋ฅธ ํ•˜๋‚˜์—์„œ๋Š” ์—ฌ์ „ํžˆ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ iPhone์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ๊ทธ๋ž˜์„œ ๋‚˜์—๊ฒŒ๋Š” Xcode / iOS์™€ ๊ด€๋ จ์ด์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : node_modules ๋ฐ npm i๋ฅผ ์ฒญ์†Œ ํ•œ ํ›„ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์ธ์ƒ์ด ์ •์ƒ์œผ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค. :)

๊ธ€์Ž„, ์ผ์ข…์˜ :) ์—ฌ์ „ํžˆ ๋งค์ดˆ๋งˆ๋‹ค ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์ง€๋งŒ ์•ฑ์€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
__nw_connection_get_connected_socket_block_invoke 60 ์—ฐ๊ฒฐ์— ์—ฐ๊ฒฐ๋œ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด์ œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์„ค๋ช…๋„์—†์ด.

์•„๋งˆ๋„ ๊ด€๋ จ์ด ์—†์ง€๋งŒ์ด ๋ฌธ์ œ๋Š” iPhone 6์—์„œ Guided Access ์ ‘๊ทผ์„ฑ ๋ชจ๋“œ๋ฅผ ๋„๋ฉด ์ €์—๊ฒŒ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

+1
์ง€๊ธˆ๊นŒ์ง€ ๋„์›€์ด ๋œ ์†”๋ฃจ์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.

์Šคํ‚ค๋งˆ ํŽธ์ง‘-> ์‹คํ–‰-> ์ธ์ˆ˜-์ƒˆ ํ™˜๊ฒฝ. var. OS_ACTIVITY_MODE disable

OS_ACTIVITY_MODE๋กœ ์˜ค๋ฅ˜๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ React Devtools์— ์—ด๋ ค์žˆ๋Š” ์›น ์†Œ์ผ“์˜ ๊ฐ€์งœ ๋กœ๊น…์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @javache
๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ด€์ ์— ์นœ์ ˆํ•˜๊ฒŒ ๋™์˜ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ์šฐ๋ฆฌ ์ค‘ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด OS ๋กœ๊น…์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ด๊ฒƒ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋กœ ์ธํ•ด ์•ฑ์˜ ์ •์ƒ์ ์ธ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ์ฃผ์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด os ๋กœ๊ทธ๋ฅผ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.

@pietgk ์˜ ์†”๋ฃจ์…˜์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

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

์ธํ„ฐ๋„ท์—์„œ ๋‚ด API๋กœ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์ด ์˜ค๋ฅ˜ / ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๋ฒˆ๋“ค์ด ์ œ๋Œ€๋กœ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค (ios10.3 / RN 0.43-rc4). ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›๊ณ  ์‘๋‹ต์„ ๋ณด๋‚ด์ง€ ๋งŒ RN์€ ์‘๋‹ต์„๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์„œ ๋‚ด ์ง„์งœ ๋ฌธ์ œ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์•„๋‹ˆ๋ผ ์‘๋‹ต์„๋ฐ›์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„,์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ.

๊ทธ๊ฒƒ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

XCode 8.2.1
RN .43
iOS 10.3
์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ฝ˜์†”์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

์ถœ๋ ฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฒƒ์„ ๋””๋ฒ„๊น… ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์—ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค !!!

๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค.
์นดํŽซ ์•„๋ž˜์—์„œ ์˜ค๋ฅ˜๋ฅผ ํ›‘์–ด ๋ณด๋Š” ๊ฒƒ์€ ์ „ํ˜€ ํ•ด๊ฒฐ์ฑ…์ฒ˜๋Ÿผ ๋“ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

+1 ๋Œ“๊ธ€์€ ์—ฌ๊ธฐ์—์„œ ๋„์›€์ด๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ค‘์ง€ํ•˜์„ธ์š”. https://twitter.com/xenadu02/status/776669668404629504์— ๋”ฐ๋ฅด๋ฉด ์ด๊ฒƒ์€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฌธ์ œ์ด๋ฉฐ ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ์—์„œ ํ•ด๊ฒฐ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ณต์ •ํ•œ ์ฝ”๋ฉ˜ํŠธ @javache.

์ฆ‰, ๋””๋ฒ„๊ทธ ๋ฐ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ ๋ชจ๋‘์—์„œ ์žฅ์น˜์—์„œ ์‹คํ–‰๋  ๋•Œ ์ด๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐค์— ์ˆ˜๋ฉด์„ ์žƒ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์†Œ์Œ ๊ณตํ•ด๋กœ ๊ฐ„์ฃผ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋”ฐ๋ผ์„œ ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๋ฌธ์ œ๋กœ ์ธ์‹๋˜๋ฉด์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ž…์žฅ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์ด ๋ฌธ์ œ๋ฅผ ์—ด์–ด ๋‘๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

XCode ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ ์ด๊ฒƒ์€ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•  ๋•Œ์˜ ๊ณ ํ†ต์„ ๋œ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

react-native log-ios | grep -v __nw_connection_get_connected_socket_block_invoke

@javache

  1. ์ด๊ฒƒ์€ ๊ฐœ๋ฐœ ๋ชจ๋“œ์˜ ์‹ค์ œ ์žฅ์น˜์—์„œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  2. ๋˜ํ•œ libnetwork.dylib ์ž์ฒด์˜ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ๋ถ„๋ช…ํžˆ Apple์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†”์˜ ํ†ต์ œ๋˜์ง€ ์•Š์€ ์ŠคํŒธ์€ ๊ฐœ์ธ์ ์œผ๋กœ RN ํ–‰๋™์ด๋ผ๊ณ  ๋งํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฉ์ฒญํ•˜์ง€ ์•Š์œผ๋ฉด 2 ์ดˆ๋งˆ๋‹ค ์ฝ˜์†” ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

RN ๊ฐœ๋ฐœ์ž๋ฅผ์œ„ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ :
๋ฌธ์ œ์˜ ์›์ธ์€ RCTWebSocketObserver (์ ์–ด๋„ RN 0.42.3) ๋˜๋Š” [RCTDevMenu packagerURL] ์žฌ ์—ฐ๊ฒฐ ๋…ผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ• reconnect ์ •๊ธฐ์ ์œผ๋กœ ์žฌ ์‹œ๋„ํ•˜๋Š” ์ŠคํŒธ OS. ์ €์—๊ฒŒ ๊ฐ€์žฅ ๋ฉ‹์ง„ ๊ฒƒ์€ ์‹ค์ œ ์žฅ์น˜์—์„œ ' http : //localhost.8081/message '์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@javache ๊ทธ๋ƒฅ

https://twitter.com/xenadu02/status/776669668404629504์— ๋”ฐ๋ฅด๋ฉด ์ด๊ฒƒ์€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฌธ์ œ์ด๋ฉฐ ํ–ฅํ›„ ์—…๋ฐ์ดํŠธ์—์„œ ํ•ด๊ฒฐ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ RN 0.44.0์„ ์‚ฌ์šฉํ•˜์—ฌ 10.3.1 (14E304)์„ ์‹คํ–‰ํ•˜๋Š” ์‹ค์ œ ์žฅ์น˜์—์„œ๋„์ด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

__EDIT : __ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ๋ฐฉ๊ธˆ @vovkasm์ด ์ด๋ฏธ ์•Œ๋ ค์ค€ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ๋ถ€ํ„ฐ ์ฝ๊ณ  ์žˆ์—ˆ์ง€๋งŒ ๋ชจ๋“  "+1"์ด ๋‚˜์—๊ฒŒ ์ „๋‹ฌ๋˜์—ˆ๊ณ  ๋‚˜๋Š” ์ฝ๊ธฐ๋ฅผ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

@javache iOS 10.2๋กœ iPhone 5 ์‹คํ–‰, ๋ฌผ๋ฆฌ์  ์žฅ์น˜์—์„œ์ด ๋ฌธ์ œ ๋ฐœ์ƒ

๋ˆ„๊ตฐ๊ฐ€ ๐Ÿ‘ ์ž…๋ ฅ์ด ์ž˜ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋ง ํ–ˆ๋‚˜์š”? : trollface :

์ด๊ฒƒ์€ ์‹ค์ œ ์žฅ์น˜์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ˆ˜์ • / ์„ค๋ช…์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@cmaitchison ์ œ์•ˆ์ด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ์ œ ๊ฒฝ์šฐ์—๋Š” ์ฒ˜์Œ์— __๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
react-native log-ios | grep -v nw_connection_get_connected_socket_block_invoke

๋ˆ„๊ตฐ๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋„๋Š” ๋Œ€์‹  ์ด์— ๋Œ€ํ•œ ์‹ค์ œ ์†”๋ฃจ์…˜์„ ์˜ˆ๊ฒฌํ•ฉ๋‹ˆ๊นŒ? ๋‚ด OCD๋Š”์ด ๋ฌธ์ œ์—์„œ ๋ฏธ์ณ ๋ฒ„๋ฆด๋ฟ ์•„๋‹ˆ๋ผ ๋กœ๊น…์„ ๋„๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋„ ๋ฏธ์ณ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์œ ์ผํ•œ๊ฐ€์š”?

@fgaleano ๋‹น์‹ ์€ ์œ ์ผํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ์žˆ์ง€๋งŒ ํ˜„์žฌ ๊ตฌํ˜„ํ•  ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค.
RN์€ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™” / ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ข…์˜ ๊ตฌ์„ฑ ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ฐœ๋ฐœ ๋ฉ”๋‰ด์˜ ๋Ÿฐํƒ€์ž„ ์Šค์œ„์น˜ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ํ™•์‹คํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ฝ˜์†”์—์„œ ์›ํ•˜์ง€ ์•Š๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค (grep ๋˜๋Š” ํ„ฐ๋ฏธ๋„์— ๋กœ๊ทธํ•˜๋Š” ๊ฒฝ์šฐ ์ด์— ์ƒ์‘ํ•˜๋Š” ๋ฉ”์‹œ์ง€). ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆจ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— OS_ACTIVITY_MODE๋กœ ๋กœ๊ทธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

+1 ๊ฒŒ์‹œ๊ฐ€ ๋„์›€์ด๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋„์›€์ด๋ฉ๋‹ˆ๊นŒ? Facebook์— ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ด์ƒํ•œ kafkaesque ์ •์ฑ…์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@vovkasm xCode์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๊นŒ?

@andreyslyusar nohow , Xcode์—๋Š” ์ฝ˜์†”์— ํ•„ํ„ฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค :-(, Sierra์˜ ์ฝ˜์†” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๋„ ์ผ๋ถ€ ๊ณ ๊ธ‰ ํ•„ํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ grep์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚˜์—๊ฒŒ ํ•„ํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ด๋ฏ€๋กœ iOS Console์„ ์‚ฌ์šฉํ•˜๋ฉฐ ๋ฒˆ๋“ค ์•ˆ์— ๋ช…๋ น ์ค„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ํ„ฐ๋ฏธ๋„์—์„œ /Applications/iOS\ Console.app/Contents/Resources/iosconsole | egrep anything ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ. ๋ฌผ๋ก  OS_ACTIVITY_MODE๋ฅผ ๋น„ํ™œ์„ฑํ™”๋กœ ์„ค์ •ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ…Œ์ŠคํŠธ-๋””๋ฒ„๊ทธ ๋‹จ๊ณ„์—์žˆ๋Š” ๊ฒฝ์šฐ nw_connection_get_connected_socket_block_invoke ๋ฉ”์‹œ์ง€๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ฝ˜์†”์—์„œ ์‹ค์ œ๋กœ๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ (์ถœ๋ ฅ, ์•ฑ ์ƒํƒœ ํ™•์ธ ๋“ฑ)์„ ๋ณด๋Š” ๋ฐ ๋ฐฉํ•ด๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ˆ˜์ •์€ ์ผ์‹œ์ ์ด๋ฉฐ ํฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Œ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. ์ฑ ์˜ค!

RN 0.44.0, iOS 10, iPhone 5S์—์„œ๋Š” ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋งค์ดˆ๋งˆ๋‹ค "__nw_connection_get_connected_socket_block_invoke"๋ฅผ ๊ณ„์† ๋ณด๋Š” ๊ฒƒ์€ ๋งค์šฐ ์„ฑ๊ฐ€์‹  ์ผ์ด๋ฏ€๋กœ OS_ACTIVITY_MODE ์ž„์‹œ ์ˆ˜์ •์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ๋„ ๋ณธ๋‹ค. ํ•œ๋™์•ˆ ์žˆ์—ˆ๋‹ค. ์ž ์‹œ ๋™์•ˆ ๊ทธ๊ฒƒ์„ ๋ฌด์‹œํ–ˆ์ง€๋งŒ ๋‚˜์—๊ฒŒ ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค :).

RN 0.44, Xcode 8.3.3

@javache ์˜ ์„ค๋ช…์„ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด์ด ์˜ค๋ฅ˜๋Š” react-native์— ๋‚ด์žฅ ๋œ ์›น ์†Œ์ผ“์—์„œ ๋ฐœ์ƒํ•˜์—ฌ react-devtools์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ react-devtools๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋ธŒ๋ฆฌ์ง€๋ฅผ ํ†ตํ•ด ์›น ์†Œ์ผ“์„ ์—ด ์ˆ˜ ์—†๋‹ค๊ณ  ๋ถˆํ‰ํ•˜๋Š” ๋งŽ์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํŽŒํ•‘๋ฉ๋‹ˆ๋‹ค (์‚ฌ์šฉ์ค‘์ธ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋จ). rn-snoopy ์™€ ๊ฐ™์€ ๊ฒƒ).

react-devtools๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์—ด๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ์ง€์นจ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

@emusgrave ,

  1. @javache ๋‚˜ facebook์˜
  2. react-devtools๋Š” ์ž‘๋™ ํ•  ๋•Œ ์ข‹์Šต๋‹ˆ๋‹ค :-)ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : RN 0.45.1์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋””๋ฒ„๊ฑฐ ๋‹จ์ˆœ, ์™œ devtools๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?)
  3. ์‹ค์ œ iOS ์žฅ์น˜์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ react-devtools๊ฐ€ ์ž‘๋™ ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋ฟก๋ฟก
# 3๊ณผ ๊ด€๋ จํ•˜์—ฌ ์‹ค์ œ iOS ์žฅ์น˜์—์„œ react-devtools๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ xcode ์ฝ˜์†”์˜ ๋ฉ”์‹œ์ง€๋Š” ์—ฌ์ „ํžˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐ ํ•œ ๋ฐฉ์‹ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

JS์˜ ์ง„์ž… ์  ๋งจ ์œ„์— react-devtools์— ๋‹ค์Œ ํ›„ํฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

   require('react-devtools-core').connectToDevTools({
     host: '192.168.2.115',
     port: '8097',
   });

(๋ถ„๋ช…ํžˆ IP๋ฅผ ์ž์‹ ์˜ ์›Œํฌ ์Šคํ…Œ์ด์…˜ IP ์ฃผ์†Œ๋กœ ๋Œ€์ฒดํ•˜์‹ญ์‹œ์˜ค).

๊ทธ๋Ÿฌ๋ฉด react-devtools์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ์ƒ์„ฑ๋˜์ง€๋งŒ ๋‚ด๋ถ€ react-native ์ฝ”๋“œ๊ฐ€ ์—ฌ์ „ํžˆ ์ž์ฒด ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ ๋ฉ”์‹œ์ง€๋Š” ๊ณ„์†ํ•ด์„œ xcode ์ฝ˜์†”์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๋ฌผ๋ฆฌ์  ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ require('react-devtools-core') ์†”๋ฃจ์…˜์„ ์กฐ๊ฑด๋ถ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„์ง ์—ฐ๊ตฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋‚˜๋ฅผ ์œ„ํ•ด react-devtools ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ๋‘ ๋ฒˆ์งธ๋กœ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„ค์น˜ ํ•œ ํ›„ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๊ฐ€ ์ฆ‰์‹œ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์„ค์น˜ ์ง€์นจ์ž…๋‹ˆ๋‹ค. https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

indead react-devtools ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์„ฑ๊ฐ€์‹  ๋กœ๊ทธ๊ฐ€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์€ ๋ชจ๋‘ ํ•จ๊ป˜ react-devtools ?? ๊ทธ๋“ค์€ ๊ทธ๊ฒƒ์„ ๊ฑฐ๋Œ€ํ•œ ๊ฒ€์€ ๊ธ€์ž ์— ๋„ฃ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค

@fgaleano ์†”๋ฃจ์…˜ = REACT-DEVTOOLS ์„ค์น˜
;)

https://github.com/facebook/react-native/commit/878b7e42fae990df745af2db6ac50cbac8a8ce1c ๋Š” ๋‚ด๋ถ€ ์• ํ”Œ ๋กœ๊ทธ ๊ธฐ๋Šฅ์„ ๋ฆฌ๋””๋ ‰์…˜ํ•˜์—ฌ ๊ฐœ๋ฐœ์ค‘์ธ์ด ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํ•ฉ๋ฆฌ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. react-devtools ๊ธฐ๋Šฅ์„ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค.

์„ ํƒ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ์ „๋ฐ˜์ ์ธ ๊ฒฝํ—˜์ด ์•…ํ™”๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋””๋ฒ„๊ทธ ๋„๊ตฌ๊ฐ€ React Native๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

์•ฝ๊ฐ„์˜ ์ƒ๊ฐ ๋์— ์ด๊ฒƒ์€ ์ „ํ˜€ ๋‚˜์œ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

  1. ์ ์ ˆํ•œ ์ˆ˜์ •๋ณด๋‹ค ์ด๋ฏธ ๋” ๋งŽ์€ ์ž‘์—…์„ ๋‚ญ๋น„ํ•ฉ๋‹ˆ๋‹ค.
  2. ์˜์‹ฌ์Šค๋Ÿฝ๊ณ  ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์–ด๋ ค์šด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ๊ฒฝ๊ณ ๋ฅผ ์ˆจ ๊น๋‹ˆ๋‹ค (์—ฌ๊ธฐ์„œ "์‹ค์ œ ๊ฒฝ๊ณ "๋Š” ๋กœ๊ทธ ์ž์ฒด์˜ nw_connection ... ์ค„์ด ์•„๋‹ˆ๋ผ ์ด๋Ÿฌํ•œ ์ค„์˜ ๋ฌดํ•œ๋Œ€ ์ˆ˜์ž…๋‹ˆ๋‹ค).
  3. ํ”„๋กœ์ ํŠธ ์œ„ํ—˜ ๋„๊ตฌ๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  4. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ์ˆจ ๊น๋‹ˆ๋‹ค (์ž˜๋ชป ์„ค๊ณ„๋œ react-devtools ์—ฐ๊ฒฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค).
  5. ์‹ค์ œ ์žฅ์น˜์—์„œ ๋ฌดํ•œ ์žฌ ์—ฐ๊ฒฐ์ฃผ๊ธฐ๋ฅผ ์ˆจ ๊น๋‹ˆ๋‹ค.

์ €๋Š” react-native์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์ด ๋” ๋งŽ์€ ๊ณ„์ธต์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ ๋” ํˆฌ๋ช…ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์ฝ”๋“œ์™€ ๋™์ž‘์œผ๋กœ ๋” ๋‚˜์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ฏฟ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  iOS ๋ฒ„์ „์—์„œ๋„ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์œ ์šฉํ•œ ๊ฒƒ์„ ์ˆจ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†Œ์ผ“ ์žฌ ์—ฐ๊ฒฐ์€ ๋””๋ฒ„๊ทธ ๋นŒ๋“œ์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๊ณ  ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์„ ํƒ์ ์œผ๋กœ RCT_DEV ํ”Œ๋ž˜๊ทธ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

์ด chnage๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ธฐ๊บผ์ด ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ˜„์žฌ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ฅผ ์งœ์ฆ๋‚˜๊ฒŒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ˆจ ๊น๋‹ˆ๋‹ค.

@matthiasdilger ** ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์„œ๋ช… ์ธ์ฆ์„œ ๋ฐ ๊ถŒํ•œ์„ ๋‹ค์‹œ ํ• ๋‹นํ•˜์—ฌ ์ด์ œ ์žฅ์น˜ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž‘๋™ํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Xcode 8.0, ios10, iphone 5s ** ์–ด๋–ป๊ฒŒ ํ•˜์…จ๋‚˜์š”? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.48.3์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๋ผ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค!

react-devtools๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค (React v0.48 ์‚ฌ์šฉ) :

  1. react-devtools ์„ค์น˜ : npm install -g react-devtools
  2. react-devtools ์‹คํ–‰ : react-devtools
  3. ํ”„๋กœ์ ํŠธ์—์„œ 'localhost'๋ฅผ ๊ฐœ๋ฐœ ๋จธ์‹ ์˜ IP ์ฃผ์†Œ๋กœ ๋Œ€์ฒดํ•˜์—ฌ node_modules / react-native / Libraries / Core / Devtools / setupDevtools.js๋ฅผ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  4. Xcode์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

@takameyer ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  : react-devtools๋ฅผ ์‹คํ–‰ํ•˜๋ฉด setupDevtools.js ์„ ํŽธ์ง‘ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@lrettig ์‹ค์ œ ์žฅ์น˜์—์„œ ๋””๋ฒ„๊น… ํ•  ๋•Œ ์‹ค์ œ๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

IOS ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๊ฐ€ (๋””๋ฒ„๊ฑฐ ๋จธ์‹ ์˜) ๋กœ์ปฌ IP๋ฅผ ์ฑ„์šฐ๋„๋กํ•˜๊ธฐ์œ„ํ•œ pull ์š”์ฒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/facebook/react-native/issues/14431

์ด ๋กœ๊ทธ ์˜ค์—ผ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด JS ๋ชจ๋“ˆ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. OS_ACTIVITY_MODE ์†”๋ฃจ์…˜์€ ์‹œ์Šคํ…œ ๋กœ๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  NSLog ๋ฌธ์„ ์ฐจ๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— IOS 11์—์„œ ์“ธ๋ชจ ์—†๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋” ์ด์ƒ ๋กœ๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ „์— ๋ฐฐ์น˜ ํ•œ์ด ํ•ดํ‚น์— ์—ฐ๊ฒฐํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค!
๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งํ–ˆ๋“ฏ์ด ํ•ดํ‚น์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ˆ˜์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌผ๊ฑด์„ ๋””๋ฒ„๊น…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ถˆํŽธํ•œ ๊ฒƒ ์ด์ƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
iOS : 10.3.3 (์‹ค์ œ ๊ธฐ๊ธฐ)
๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ˜์‘ : 0.48
Xcode : 9.0
๊ทธ๋ฆฌ๊ณ  ์•ฑ์€ ์ •๋ง ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Xcode-> Product-> Schema-> Edit Schema-> Info Tab-> Build Configuration-> set from Debug to 'Release'
์•ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์•ฑ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์ด๊ฒƒ์€ ์–ด๋–ค ์ข…๋ฅ˜์˜ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ์ง€๋งŒ ์ €๋Š” ์ด๊ฒƒ์„ ๊ณต์œ ํ•˜๊ณ  REAL ์†”๋ฃจ์…˜์— ์•ฝ๊ฐ„์˜ ํ‘ธ์‹œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์ฆ๊ฑฐ์šด ์ฝ”๋”ฉ ๋˜์„ธ์š”!

๊ฐ™์€ ๋ฌธ์ œ.
RN : 0.49.3
iOS 11 ์‹คํ–‰
Xcode 9
์‹ค์ œ ์žฅ์น˜

๊ฐ™์€ ๋ฌธ์ œ

RN : 0.49.0
iOS 11, iPhone 5s
Xcode 9

์ด๊ฒƒ์„ ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค. ์žฅ์น˜์—์„œ ๋‹ค์‹œ๋กœ๋“œํ•˜๊ณ  ๋””๋ฒ„๊ทธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ๋„ ์—ฌ์ „ํžˆ ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... ์žฅ์น˜์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์ง€๋งŒ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

RN : 0.49.0
iOS 11, iPhone 7
Xcode : 9.0.1

์ด ๋ฌธ์ œ๋Š” ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ ํ…Œ์ŠคํŠธ ์ค‘ ๊ธด ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. @kawashimaken ๊ณผ ๊ฐ™์€ ๋นŒ๋“œ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ €์—๊ฒŒ

@takameyer ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์–ธ๊ธ‰ ํ•œ ๋‹จ๊ณ„๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

cool @takameyer

react-devtools ์‚ฌ์šฉํ•˜๋Š” @takameyer ๋Š” XCode ๋กœ๊ทธ๋ฅผ ์กฐ์šฉํžˆํ•˜์ง€๋งŒ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ๋””๋ฒ„๊น…์ด ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•˜๋Š” callbacks_poll ๋ผ๋Š” ํ˜ธ์ถœ๋กœ React Native Debugger์—์„œ ๋์—†๋Š” ๋„คํŠธ์›Œํฌ ์ถœ๋ ฅ์„ ์–ป์Šต๋‹ˆ๋‹ค. Chrome ๋””๋ฒ„๊ฑฐ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ™์€ ๋ฌธ์ œ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋‚˜ํƒ€๋‚œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” RN0.49.5์— ์žˆ์Šต๋‹ˆ๋‹ค

screen shot 2017-11-24 at 17 11 55

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹React Native 0.50.4, Xcode 9.1, iOS 11.1, macOS High Sierra์—์„œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

TCP Conn 0x1c03627c0 Failed : error 0:61 [61]
[] nw_connection_get_connected_socket 164 Connection has no connected handler
๊ณ„์†ํ•ด์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ํ†ต๋‚˜๋ฌด๋ฅผ ์ต์‚ฌ ...

iPhone 6s, iOS 10์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ‚ค ์ง€์นจ์— ๋”ฐ๋ผ Xcode์—์„œ iOS ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ์•ฑ์ด ์‹œ์ž‘ ํ™”๋ฉด์—์„œ ๋ฉˆ ์ถฅ๋‹ˆ ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ป๋Š” ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

2017-12-05 13:20:06.849 [info][tid:main][RCTBatchedBridge.m:75] Initializing <RCTBatchedBridge: 0x1c01ba080> (parent: <RCTBridge: 0x1c00d0450>, executor: RCTJSCExecutor)
2017-12-05 13:20:06.854783-0300 StatusIm[1755:195391] Initializing <RCTBatchedBridge: 0x1c01ba080> (parent: <RCTBridge: 0x1c00d0450>, executor: RCTJSCExecutor)
2017-12-05 13:20:09.213 [info][tid:com.facebook.react.JavaScript] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.213595-0300 StatusIm[1755:195564] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.216 [info][tid:com.facebook.react.JavaScript] { [TypeError: undefined is not an object (evaluating 'sjcl.random')]
  line: 61724,
  column: 28,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.215912-0300 StatusIm[1755:195564] { [TypeError: undefined is not an object (evaluating 'sjcl.random')]
  line: 61724,
  column: 28,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.305 [info][tid:com.facebook.react.JavaScript] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.305135-0300 StatusIm[1755:195564] There was an error collecting entropy from the browser:
2017-12-05 13:20:09.306 [info][tid:com.facebook.react.JavaScript] { [Error: Requiring module "629", which threw an exception.]
  line: 136,
  column: 15,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.305704-0300 StatusIm[1755:195564] { [Error: Requiring module "629", which threw an exception.]
  line: 136,
  column: 15,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:09.526 [info][tid:main][RCTRootView.m:284] Running application StatusIm ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-12-05 13:20:09.526001-0300 StatusIm[1755:195391] Running application StatusIm ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-12-05 13:20:09.530 [info][tid:com.facebook.react.JavaScript] Running application "StatusIm" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-12-05 13:20:09.530103-0300 StatusIm[1755:195564] Running application "StatusIm" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-12-05 13:20:09.587 [info][tid:com.facebook.react.JavaScript] Loading Closure base.
2017-12-05 13:20:09.587179-0300 StatusIm[1755:195564] Loading Closure base.
2017-12-05 13:20:09.588 [info][tid:com.facebook.react.JavaScript] Shimming require
2017-12-05 13:20:09.587855-0300 StatusIm[1755:195564] Shimming require
2017-12-05 13:20:10.377936-0300 StatusIm[1755:195547] [] nw_connection_get_connected_socket 3 Connection has no connected handler
2017-12-05 13:20:10.377975-0300 StatusIm[1755:195547] TCP Conn 0x1c0164a40 Failed : error 0:61 [61]
2017-12-05 13:20:10.709350-0300 StatusIm[1755:195547] TIC TCP Conn Failed [4:0x1c4162340]: 1:61 Err(61)
2017-12-05 13:20:10.709579-0300 StatusIm[1755:195547] Task <6BA6D0FB-6F5F-459F-8D6A-AB299AF9D169>.<1> HTTP load failed (error code: -1004 [1:61])
2017-12-05 13:20:10.710073-0300 StatusIm[1755:195537] Task <6BA6D0FB-6F5F-459F-8D6A-AB299AF9D169>.<1> finished with error - code: -1004
2017-12-05 13:20:10.716 [error][tid:com.facebook.react.JavaScript] { [TypeError: Network request failed]
  line: 6335,
  column: 29,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:10.716440-0300 StatusIm[1755:195564] { [TypeError: Network request failed]
  line: 6335,
  column: 29,
  sourceURL: 'http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false' }
2017-12-05 13:20:10.828 [warn][tid:com.facebook.react.JavaScript] Possible Unhandled Promise Rejection (id: 0):
error is not a function. (In 'error()', 'error' is an instance of TypeError)
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:129458:21
tryCallOne<strong i="6">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3829:14
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3915:25
callTimer<strong i="7">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2142:17
callImmediatesPass<strong i="8">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2228:36
callImmediates<strong i="9">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2238:48
guard<strong i="10">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
__callImmediates<strong i="11">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2008:12
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1897:31
guard<strong i="12">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
callFunctionReturnFlushedQueue<strong i="13">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1895:12
callFunctionReturnFlushedQueue@[native code]
2017-12-05 13:20:10.828779-0300 StatusIm[1755:195564] Possible Unhandled Promise Rejection (id: 0):
error is not a function. (In 'error()', 'error' is an instance of TypeError)
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:129458:21
tryCallOne<strong i="14">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3829:14
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:3915:25
callTimer<strong i="15">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2142:17
callImmediatesPass<strong i="16">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2228:36
callImmediates<strong i="17">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2238:48
guard<strong i="18">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
__callImmediates<strong i="19">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:2008:12
http://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1897:31
guard<strong i="20">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1860:7
callFunctionReturnFlushedQueue<strong i="21">@http</strong>://192.168.0.13.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:1895:12
callFunctionReturnFlushedQueue@[native code]
2017-12-05 13:20:13.504143-0300 StatusIm[1755:195547] [] nw_connection_get_connected_socket 6 Connection has no connected handler
2017-12-05 13:20:13.504274-0300 StatusIm[1755:195547] TCP Conn 0x1c0167f80 Failed : error 0:61 [61]

2017-12-05 13:20:16.618225-0300 StatusIm[1755:195543] [] nw_connection_get_connected_socket 7 Connection has no connected handler
2017-12-05 13:20:16.618266-0300 StatusIm[1755:195543] TCP Conn 0x1c0167800 Failed : error 0:61 [61]
2017-12-05 13:20:19.735413-0300 StatusIm[1755:195537] [] nw_connection_get_connected_socket 8 Connection has no connected handler
2017-12-05 13:20:19.735505-0300 StatusIm[1755:195537] TCP Conn 0x1c0167d40 Failed : error 0:61 [61]
2017-12-05 13:20:22.848930-0300 StatusIm[1755:195543] [] nw_connection_get_connected_socket 9 Connection has no connected handler
2017-12-05 13:20:22.848997-0300 StatusIm[1755:195543] TCP Conn 0x1c01663c0 Failed : error 0:61 [61]

๊ทธ๋ฆฌ๊ณ  ๊ณ„์†ํ•ด์„œ ...

RN 0.51.0์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๋ฉด ๋ˆ„๊ตฌ๋“ ์ง€๋ณด๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜์‹ฌ ์Šค๋Ÿฝ์ง€๋งŒ ์•„์ง ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

~/Documents/Development/ReactNative/AwesomeProject$ react-native -v
react-native-cli: 2.0.1
react-native: 0.51.0

Xcode :

2017-12-07 09:19:17.996487+0000 AwesomeProject[1887:905415] TCP Conn 0x1c016c600 Failed : error 0:61 [61]
2017-12-07 09:19:20.199010+0000 AwesomeProject[1887:905411] [] nw_connection_get_connected_socket 22 Connection has no connected handler
2017-12-07 09:19:20.199120+0000 AwesomeProject[1887:905411] TCP Conn 0x1c416a140 Failed : error 0:61 [61]
2017-12-07 09:19:22.329654+0000 AwesomeProject[1887:905417] [] nw_connection_get_connected_socket 23 Connection has no connected handler
2017-12-07 09:19:22.329713+0000 AwesomeProject[1887:905417] TCP Conn 0x1c016c600 Failed : error 0:61 [61]
2017-12-07 09:19:24.472388+0000 AwesomeProject[1887:905417] [] nw_connection_get_connected_socket 24 Connection has no connected handler

OS_ACTIVITY_MODE๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” React ๋„ค์ดํ‹ฐ๋ธŒ ๋ฃจํŠธ์—์„œ yarn start ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์นœ ๋กœ๊ทธ๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‚ฌ๋ผ์ง€์ง€๋งŒ ์‹ค์ œ ์žฅ์น˜์—๋Š” ์—ฌ์ „ํžˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋ช‡ ์‹œ๊ฐ„ ์ผํ•œ ํ›„ ๋ชจ๋“  ๋Œ“๊ธ€์„ ๋ฐ˜๋ณตํ•ด์„œ ์ฝ์œผ์‹ญ์‹œ์˜ค. ๋งˆ์นจ๋‚ด @emilsjolander 878b7e4 ๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์Šต๋‹ˆ๋‹ค .

- (void)reconnect function์˜ ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ์•„์ด ๋ฏธ์นœ ๋กœ๊ทธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. React/RCTWebSocket/RCTReconnectingWebSockect.m .
๋ฏธ์นœ ๋กœ๊ทธ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๋งค๋ฒˆ ์ด๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” React-native๋ฅผ 0.51.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 878b7e4 ๊ฐ€ ํ•ด๋‹น ๋ถ„๊ธฐ์—์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
"๋ฐ˜์‘": "16.2.0",
"๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ": "0.52.0",

xcode :

2018-01-10 15 : 54 : 15.635865 backgroundexample [3900 : 1884257] [] __nw_connection_get_connected_socket_block_invoke 146 ์—ฐ๊ฒฐ์— ์—ฐ๊ฒฐ๋œ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
2018-01-10 15 : 54 : 17.134563 backgroundexample [3900 : 1884258] [] __nw_connection_get_connected_socket_block_invoke 147 ์—ฐ๊ฒฐ์— ์—ฐ๊ฒฐ๋œ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
2018-01-10 15 : 54 : 17.629791 backgroundexample [3900 : 1884329] [] __nw_connection_get_connected_socket_block_invoke 148 ์—ฐ๊ฒฐ์— ์—ฐ๊ฒฐ๋œ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ ?? ๋‚ด iOS ๊ธฐ๊ธฐ์—์„œ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/facebook/react-native/pull/17617 ์ฐธ์กฐ
์ธ์•ฑ ๊ฐœ๋ฐœ์ž ๋ฉ”๋‰ด์— Enable / Disable DevTools ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ถˆํ–‰ํžˆ๋„ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ RCTPackagerConnection (funcition socketForLocation )์—์„œ ๋งŒ๋“  ๋‹ค๋ฅธ websocket ๋•Œ๋ฌธ์— AppDelegate ์—์„œ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ธ์•ฑ ๊ฐœ๋ฐœ์ž ๋ฉ”๋‰ด์— ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ํ™œ์„ฑํ™” / ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์นœ ๊ฒƒ์ผ๊นŒ ์š”?

์ด ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค .....
์„ค์ •์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด "nw_connection_get_connected_socket"์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ( https://github.com/facebook/react-native/issues/10027#issuecomment -261608678).

๊ทธ๋ž˜๋„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์Šค๋งˆํŠธ ํฐ๊ณผ ๋ฐ์Šคํฌํ†ฑ์ด ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š” ...

์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์›€์ง์ž„์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ํฌํ•จ ๋œ ํ”„๋ ˆ์ž„ ์›Œํฌ์˜ ์—ฐ๊ฒฐ์— ์˜ํ–ฅ์„ ์ฃผ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

RN์—์„œ ์ œ์ž‘ : 51, 52 ๋ฐ 53, ์ƒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ฆ‰์‹œ ๋ฐฐ์ถœ๋จ

2018-02-26 10:35:30.461406+0000 AwesomeProject[1116:328205] NSURLConnection finished with error - code -1001
2018-02-26 10:35:30.475292+0000 AwesomeProject[1116:328202] Task <B8745B69-267D-47AB-BCE2-B4DD3C525418>.<0> HTTP load failed (error code: -999 [1:89])
2018-02-26 10:35:30.479 [info][tid:main][RCTCxxBridge.mm:210] Initializing <RCTCxxBridge: 0x1c41c6540> (parent: <RCTBridge: 0x1cc0cdc10>, executor: (null))
2018-02-26 10:35:30.483170+0000 AwesomeProject[1116:328126] Initializing <RCTCxxBridge: 0x1c41c6540> (parent: <RCTBridge: 0x1cc0cdc10>, executor: (null))
2018-02-26 10:35:30.554 [warn][tid:main][RCTBridge.m:120] Class RCTCxxModule was not exported. Did you forget to use RCT_EXPORT_MODULE()?
2018-02-26 10:35:30.554183+0000 AwesomeProject[1116:328126] Class RCTCxxModule was not exported. Did you forget to use RCT_EXPORT_MODULE()?
2018-02-26 10:35:30.578 [warn][tid:main][RCTModuleData.mm:69] Module RCTImageLoader requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
2018-02-26 10:35:30.577913+0000 AwesomeProject[1116:328126] Module RCTImageLoader requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
2018-02-26 10:35:30.657 [info][tid:main][RCTRootView.m:302] Running application AwesomeProject ({
    initialProps =     {
    };
    rootTag = 1;
})
2018-02-26 10:35:30.657524+0000 AwesomeProject[1116:328526] [] nw_connection_get_connected_socket 2 Connection has no connected handler
2018-02-26 10:35:30.657537+0000 AwesomeProject[1116:328526] TCP Conn 0x1d0360d80 Failed : error 0:61 [61]
2018-02-26 10:35:30.790 [info][tid:com.facebook.react.JavaScript] Running application "AwesomeProject" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF

์ด๊ฒƒ์€ RN 0.52.0 ๋ฐ 0.54.0-rc.3์—๋„ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ ์•ฑ์ด '๋ฉ”๋ชจ๋ฆฌ ํ™” ๋œ ์†Œํ’ˆ'(๊ทธ์™€ ๊ฐ™์€ ๊ฒƒ)์— ๊ด€ํ•œ ๋งŽ์€ ๋กœ๊ทธ๊ฐ€ Xcode ๋กœ๊ทธ๋ณด๊ธฐ๋กœ ๋ถ„์ถœ๋˜๊ณ  ์žฅ์น˜๊ฐ€ ๊ณผ์—ด ๋œ ๋‹ค์Œ (iphone 7) ์•ฑ์ด ์ถฉ๋Œํ•˜๋Š” ๋ฃจํ”„์— ๋น ์ง€๋Š” ๊ฒƒ์„ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค.

๊ธ€์Ž„, ์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€์ž…๋‹ˆ๋‹ค. iOS 11, ๋ฐ˜์‘ 0.54.

๋ฆฌ ๋ฐ”์ธ๋”ฉ ๊ธฐํ˜ธ๊ฐ€ ์žฅ์น˜์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฉฐ ๋Œ€์ฒด ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์žฅ์น˜์—์„œ ์‹คํ–‰ ์ค‘์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  localhost์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๋‘ ๊ฐœ์˜ ์›น ์†Œ์ผ“์ด ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ๋‚˜๋ฅผ ๊ดด๋กญ ํž™๋‹ˆ๋‹ค.

fetch ()๊ฐ€ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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