๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
React-Native

react-native ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ, v0.69 to v0.78

by LasBe 2025. 4. 19.
๋ฐ˜์‘ํ˜•

๐Ÿ“’ react-native ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ, v0.69 to v0.78


์ตœ๊ทผ์— ํ˜„์žฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์˜ ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „ ์—…์€ ํ‰์†Œ์—๋„ ์•…๋ช…์ด ์ž์žํ•ด์„œ ์ง€๋ž˜ ๊ฒ๋ถ€ํ„ฐ ๋จน์—ˆ์ง€๋งŒ, ์ƒ๊ฐ๋ณด๋‹ค ์ผ์ •์„ ๋„‰๋„‰ํ•˜๊ฒŒ ๋ฐ›๊ฒŒ ๋˜์–ด ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ๋‹ค ๋ณด๋‹ˆ 0.69 ๋ฒ„์ „์—์„œ 0.78 ๋ฒ„์ „๊นŒ์ง€ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์™• ํ•˜๋Š” ๊ฑฐ ๊ธฐ์กด์— ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์œ ๋ฐœํ•˜๋˜ Hermes ์—”์ง„๋„ enable ํ•œ ๋’ค ์–ด๋А ์ •๋„ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋„ ์žก์•˜๊ฒ ๋‹ค, ๋งˆ๋ƒฅ ๋‘๋ ค์›Œํ–ˆ๋˜ RN ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.
 

๐Ÿ“Œ ์ „๋žต ์„ธ์šฐ๊ธฐ

RN ๋ฒ„์ „์„ ์˜ฌ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์€ ๋ฐ”๋€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋“ค์„ ๋ฐ˜์˜ํ•˜๊ณ  ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ๋งž์ถฐ์ฃผ๋Š” ๊ฒŒ ์•ŒํŒŒ์ด์ž ์˜ค๋ฉ”๊ฐ€์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค.
์ œ๊ฐ€ ์ง€๊ธˆ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ์•ฑ์˜ ๊ฒฝ์šฐ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๊ต‰์žฅํžˆ ์˜ค๋ž˜๋˜์—ˆ๊ณ , ๊ทธ๋™์•ˆ ์—ฌ๋Ÿฌ SDK๋“ค๊ณผ ์„ค์ •๋“ค๋กœ ์ธํ•ด ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋“ค์ด ๊ธฐ์กด๊ณผ ์ƒ๋‹นํžˆ ๋‹ฌ๋ผ์ง„ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ๋ ค๋ฉด ๋ฐ”๋€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋“ค์„ ๋ฐ˜์˜ํ•˜๋Š” ์ž‘์—…๋“ค์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ๋ฐ ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๋ฆฌ๋“ค์ด ์Œ“์—ฌ์žˆ๋‹ค ๋ณด๋‹ˆ ํ•œ ๋ฒˆ์— ๋งŽ์€ ๋ฒ„์ „์„ ์˜ฌ๋ ค ๋งŽ์€ ๋ณ€๊ฒฝ์ ๋“ค์„ ํ•œ ๋ฒˆ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ €๋Š” ์—ฌ๋Ÿฌ ๋ฒ„์ „๋“ค์„ ์กฐ์‚ฌํ•œ ๋’ค ๋ณ€๊ฒฝ์ ์ด ์œ ์‚ฌํ•œ ๋ฒ„์ „๋“ค์„ ๋ฌถ๊ณ , ์ ์ง„์ ์œผ๋กœ ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋“ค์˜ ์ˆ˜์ •์ด ๊ฑฐ์˜ ์—†๊ณ , ํŒจํ‚ค์ง€ ์˜์กด์„ฑ์ด ์ ์€ ์ƒํƒœ๋ผ๋ฉด ๋ณ€๊ฒฝ์ ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์‰ฌ์šฐ๋‹ˆ ํ•œ ๋ฒˆ์— ๋†’์€ ๋ฒ„์ „์œผ๋กœ ๋›ฐ์–ด๋„˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
 

๐Ÿ“Œ ๋ฒ„์ „ ๋ณ„ ๋ณ€๊ฒฝ์ 

๋ฒ„์ „ ๋ณ„ ํผ์ง€๋ง‰ํ•œ ๋ณ€ํ™”๋“ค์„ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ AOS min. IOS min. ๋ณ€๊ฒฝ์ 
0.78 Android 7.0(API 24) 15.1
  • react 19
0.77 Android 6.0(API 23) 13.4
  • objective-c โ†’ swift ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ ๋ณ€๊ฒฝ
    • main.m, AppDelegate.h, AppDelegate.mm โ†’ AppDelegate.swift๋กœ ํ†ตํ•ฉ
    • ๋ฐ˜๋“œ์‹œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜์ง€ ์•Š์•„๋„ ๋จ
0.76 Android 6.0(API 23) 13.4
  • New Architecture ๊ธฐ๋ณธ ์ ์šฉ
  • react-native-cli deprecated
    • @react-native-community/cli ์„ค์น˜ ํ•„์š”
0.74 Android 6.0(API 23) 13.4
  • PushNotificationIOS ์—…๋ฐ์ดํŠธ๋ฅผ ํฌํ•จํ•œ ์ผ๋ถ€ ์ค‘๋‹จ ๋ณ€๊ฒฝ
  • PropTypes API ์ œ๊ฑฐ
  • Flipper ์ œ๊ฑฐ
0.73 Android 5.0(API 21) 13.4
  • Android ๊ธฐ๋ณธ ์–ธ์–ด Kotlin์œผ๋กœ ๋ณ€๊ฒฝ, ๋ฐ˜๋“œ์‹œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•„์š” X
  • Deprecated @types/react-native
    • ํƒ€์ž…์ •๋ณด react-native์—์„œ ๊ธฐ๋ณธ ์ œ๊ณต
  • metro-react-native-babel-preset โ†’ @react-native/babel-preset
0.72 Android 5.0(API 21) 12.4

 
์ œ๊ฐ€ 0.69 -> 0.70 -> 0.72 -> 0.76 -> 0.77 -> 0.78 ์ˆœ์œผ๋กœ ๋ฒ„์ „์„ ์˜ฌ๋ ค๋ณธ ๊ฒฐ๊ณผ 0.72 ๋ฒ„์ „๊ณผ 0.76 ๋ฒ„์ „๋งŒ ๋šซ์œผ๋ฉด ์˜์กด์„ฑ๊ณผ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์˜ ๋ณ€ํ™”๋Š” ๋ฏธ๋ฏธํ•œ ์ˆ˜์ค€์ด์–ด์„œ ๋‹ค์Œ ๋ฒ„์ „์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š”๋ฐ ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€์žฅ ๋งˆ์Œ์— ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ ์–ธ์–ด ๋ณ€๊ฒฝ์ธ๋ฐ, ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” GPT์˜ ๋„์›€์œผ๋กœ ๋ฌด๋‚œํ•˜๊ฒŒ Java์—์„œ Kotlin์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ–ˆ์ง€๋งŒ, IOS๋Š” ์ด๋ฏธ objective-c๋กœ ์ž‘์„ฑ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋“ค์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๊ธฐ์—” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.
์ž‘๋™์€ ํ•˜์ง€๋งŒ ์ถ”ํ›„ ๋ฒ„์ „์„ ๋ฌด๋‚œํ•˜๊ฒŒ ์˜ฌ๋ฆฌ๋ ค๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋ฏธ๋ฆฌ ํ•ด๋‘๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
 

๐Ÿ“Œ ๋ฒ„์ „ ์—… ํˆด

๋ฒ„์ „ ์—…์„ ํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์˜์กด์„ฑ๊ณผ ๋„ค์ดํ‹ฐ๋ธŒ ๋ณ€๊ฒฝ์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์„ ์†Œ๊ฐœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ”Ž ๋ฒ„์ „ ๋ณ„ ์˜์กด์„ฑ ๋ฒ„์ „ ์ฒดํฌ ๋ฐ ๋ณ€๊ฒฝ

RN ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋œ ํŒจํ‚ค์ง€ ๋ฒ„์ „๋“ค์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
ํ…œํ”Œ๋ฆฟ package.json์— ๋งž์ถฐ ๋ฒ„์ „์„ ์ฒดํฌํ•ด์„œ, ๋ฐ˜๋“œ์‹œ ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ์ง€ ์•Š์•„๋„ ๋˜๋Š” ํŒจํ‚ค์ง€๋“ค์˜ ๋ฒ„์ „๋„ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋“ค์€ ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ ๋’ค ๋ฒ„์ „์„ ๋‹ค์‹œ ๋˜๋Œ๋ ค์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

# ๋ณ€๊ฒฝ๋œ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ํ™•์ธ
$ npx @rnx-kit/align-deps --requirements react-native@0.78

# ๋ณ€๊ฒฝ๋œ ํŒจํ‚ค์ง€ ๋ฒ„์ „ package.json์— ๋ฐ˜์˜
$ npx @rnx-kit/align-deps --requirements react-native@0.78 --write

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

๐Ÿ”Ž React Native Upgrade Helper

https://react-native-community.github.io/upgrade-helper/

Upgrade React Native applications

react-native-community.github.io

๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” ์›นํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋ฒ„์ „ ํ…œํ”Œ๋ฆฟ๊ณผ ๋ชฉํ‘œํ•˜๋Š” ๋ฒ„์ „์˜ ํ…œํ”Œ๋ฆฟ์˜ ๋ณ€๊ฒฝ ์ „ ํ›„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Android์™€ IOS์˜ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋“ค์„ ํ•˜๋‚˜์”ฉ ์‚ดํ”ผ๋ฉฐ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค.
์‚ฌ์†Œํ•œ ๊ฒƒ ํ•˜๋‚˜๋กœ ๋นŒ๋“œ ์—๋Ÿฌ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๊ธฐ์— ๊ฐ€์žฅ ํž˜๋“ค๊ณ  ๊ผผ๊ผผํ•˜๊ฒŒ ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
์ •์‹  ๋˜‘๋ฐ”๋กœ ์ฐจ๋ฆฌ๊ณ  ํ•œ ์ค„ ํ•œ ์ค„ ์ •์„ฑ์Šค๋Ÿฝ๊ฒŒ ์˜ฎ๊ฒจ์ฃผ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
 

๐Ÿ“Œ ๊ฐ์ข… ์บ์‹œ ์‚ญ์ œ ๋ช…๋ น์–ด

๋ฒ„์ „์„ ์˜ฌ๋ฆด ๋• ์บ์‹œ์— ์˜ํ•œ ์—๋Ÿฌ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋‹ˆ, ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค ํ•˜๋ฉด ํŒŒ๋ธ”๋กœํ”„์˜ ๊ฐœ์ฒ˜๋Ÿผ ์บ์‹œ ๋จผ์ € ์ง€์›Œ์ฃผ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž metro

$ yarn start --reset-cache

 

๐Ÿ”Ž Android

$ cd android && ./gradlew clean

 

๐Ÿ”Ž IOS

$ cd ios &&  
  rm -rf Pods && 
	rm -rf Podfile.lock &&
	rm -rf build &&
	pod repo remove trunk &&
	pod cache clean --all &&
	pod install

 
 

๐Ÿ“Œ ๋นŒ๋“œ ์—๋Ÿฌ ์œ ๋ฐœ ํŒจํ‚ค์ง€

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

๐Ÿ”Ž react-native-reanimated (๋ชจ๋“  ๋ฒ„์ „ ์œ ์˜)

์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ด€๋ จ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋“ค์ด ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ์œ ๋ช…ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

https://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/
์œ„ ์‚ฌ์ง„์œผ๋กœ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ RN ๋ฒ„์ „์— ๋”ฐ๋ผ ํ˜น์€ New Architecture์— ๋”ฐ๋ผ ์ง€์›ํ•˜๋Š” ๋ฒ„์ „์ด ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ˆ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜๊ณ  ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
 

๐Ÿ”Ž react-native-google-mobile-ads (AOS / v0.72, v0.76)

์ธ์•ฑ ๊ด‘๊ณ  ๊ด€๋ จ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.
0.72์—์„œ ^11.0.0, 0.76์—์„œ ^14.0.0 ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ ค ์•ˆ๋“œ๋กœ์ด๋“œ ๋นŒ๋“œ ์—๋Ÿฌ๋ฅผ ์žก์•˜์Šต๋‹ˆ๋‹ค.
 

๐Ÿ”Ž react-native-iap (AOS / v0.76+)

์œ ๋ช…ํ•œ ์Šคํ† ์–ด ๊ฒฐ์ œ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.
0.76 ๋ฒ„์ „์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ๋นŒ๋“œ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ~12.13.0 -> ~12.16.0 ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ๋ฉฐ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ตฌ๋… ๊ฒฐ์ œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์œ ๋ฐœํ•˜๋‹ˆ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค.

๐Ÿ”Ž react-native-progress (v0.76+)

@react-native-community/art deprecated๋กœ ์ธํ•œ ๋นŒ๋“œ ์—๋Ÿฌ๋กœ ^4.0.0 -> ^5.0.0 ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.
 

๐Ÿ”Ž @supersami/rn-foreground-service (AOS / v0.76+)

symbol: variable drawable
location: class R
ํŒจํ‚ค์ง€ ์•ˆ๋“œ๋กœ์ด๋“œ ์ฝ”๋“œ์—์„œ ๋นŒ๋“œ ์—๋Ÿฌ๋ฅผ ์œ ๋ฐœํ•ด patch-package๋กœ ์—๋Ÿฌ๋ฅผ ์žก์•˜์Šต๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.
https://github.com/Raja0sama/rn-foreground-service/issues/86#issuecomment-1920907971
 

๐Ÿ”Ž @react-native-firebase/crashlytics (IOS xcode 16 / v0.76)

์ด๊ฑด xcode15์—์„œ IOS ๋นŒ๋“œ ์„ฑ๊ณต์„ ํ•œ ํ›„ xcode16 ๋ฒ„์ „์„ ์˜ฌ๋ฆฐ ๋’ค ๋ฐœ์ƒํ•œ ๋นŒ๋“œ ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์•„์ง ์ •ํ™•ํ•œ ์›์ธ์€ ์•Œ ์ˆ˜ ์—†์–ด์„œ RN ๋ฒ„์ „ ๋•Œ๋ฌธ์ธ์ง€ xcode ๋ฒ„์ „ ๋•Œ๋ฌธ์ธ์ง€ ์•Œ์ญ๋‹ฌ์ญํ•ฉ๋‹ˆ๋‹ค.
ios/connecting.xcodeproj/project.pbxproj์—์„œ run script๋ฅผ ์ˆ˜์ •ํ•œ ๋’ค ๋นŒ๋“œ ์—๋Ÿฌ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

- shellScript = "${PODS_ROOT}/Fabric/run\"\n";
+ shellScript = "${PODS_ROOT}/FirebaseCrashlytics/run\"\n";

 
 
 
 

๐Ÿ“Œ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ์œ ๋ฐœ ํŒจํ‚ค์ง€

๋นŒ๋“œ๊ฐ€ ๋๋‚ฌ๋‹ค๊ณ  ์•ˆ์‹ฌํ•˜๊ธด ์ด๋ฆ…๋‹ˆ๋‹ค.
์•ˆ๋“œ๋กœ์ด๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค๊ณ  IOS๊ฐ€ ์ •์ƒ ์‹คํ–‰ ๋˜๋Š” ๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.
2๋ฒˆ ํƒ€์ž ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ, ํผ์ง€๋ง‰ํ•œ ๊ฒƒ๋“ค ์œ„์ฃผ๋กœ ์†Œ๊ฐœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ”Ž @react-navigation/* (v0.76+)

์‚ฌ์‹ค RN ๊ฐœ๋ฐœ์—์„  ๋นผ๋†“์„ ์ˆ˜ ์—†๋Š” ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.
๊ธฐ์กด์— 5 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ 0.76 ๋ฒ„์ „์—์„œ๋Š” ๋„ค๋น„๊ฒŒ์ด์…˜์ด ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ํŒจํ‚ค์ง€ ๋•Œ๋ฌธ์ธ ๊ฑด์ง€ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.
7 ๋ฒ„์ „์œผ๋กœ ๊ฐ€๊ธฐ์—๋Š” ๋ณ€๊ฒฝ์ ๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์•„ 6 ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ฆฐ ๋’ค ๋ณ€๊ฒฝ์ ์„ ๋ฐ˜์˜ํ•ด์„œ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
 

๐Ÿ”Ž reactotron-react-native (v0.72+)

RN ๋””๋ฒ„๊น…ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” reactotron์ž…๋‹ˆ๋‹ค.
์•ฑ ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์—๋Ÿฌ๋ฅผ ๋ฑ‰๊ณ , ์—๋Ÿฌ ์Šคํƒ์€ "๋ฒˆ๋“ค ํŒŒ์ผ์˜ redux store๊ฐ€ undefined" ๋ผ๊ณ ๋งŒ ๋ณด์—ฌ์ค˜์„œ ๊ฐ€์žฅ ๋‚œ๊ฐํ–ˆ๋˜ ์ˆœ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.
RN ๋ฒ„์ „์„ ์˜ฌ๋ฆฌ๋ฉฐ redux store๊ฐ€ ์ดˆ๊ธฐํ™”๋˜๊ธฐ ์ „ reactotron์—์„œ ์ฐธ์กฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ ๋งŒ ์ถ”์ธก๋  ๋ฟ์ž…๋‹ˆ๋‹ค.
์ž๋ฃŒ ํ•˜๋‚˜ ์—†์ด ๋ฒˆ๋“ค ํŒŒ์ผ ํ•˜๋‚˜๋กœ ์–ด์ฐŒ์ €์ฐŒ ์ถ”๋ฆฌํ•˜๋ฉฐ reactotron ๋ฒ„์ „์„ 3.4.0 -> ^5.0.0์œผ๋กœ ์˜ฌ๋ ค ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
 

๐Ÿ”Ž @welldone-software/why-did-you-render (v0.78+)

react 19๋กœ ์ธํ•œ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ^10.0.0 ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ ค ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/welldone-software/why-did-you-render/releases/tag/v10.0.0
 

๐Ÿ”Ž react-native-code-push

https://github.com/microsoft/react-native-code-push#supported-react-native-platforms
RN ๋ฒ„์ „๋ณ„๋กœ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œํ‘ธ์‹œ ํŒจํ‚ค์ง€ ๋ฒ„์ „์ด ๋‹ค๋ฅด๋‹ˆ ์ž˜ ์„ค์ •ํ•ด ์ค๋‹ˆ๋‹ค.
์ €๋Š” 7 ๋ฒ„์ „์—์„œ 8 ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ ธ๋Š”๋ฐ ํ•˜์œ„ ํ˜ธํ™˜ ์ง€์›์ด ์ž˜ ๋˜๋Š”์ง€ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ด๋„ค์š”.
 

๐Ÿ“Œ ํ›„๊ธฐ

์ง€๊ธˆ์€ ํ˜น์‹œ ๋ชจ๋ฅผ ์—๋Ÿฌ์— ๋Œ€๋น„ํ•ด์„œ ์•ˆ์ •ํ™” ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์™€์„œ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ๋งŒ ๊ฐ™์•˜๋˜ ๊ฒƒ์„ ์„ฑ๊ณต ๊ทผ์ฒ˜๊นŒ์ง€ ์™”๋‹ค๋Š” ๊ฒŒ ๋ฏฟ๊ธฐ์ง€ ์•Š๋„ค์š”.
์‚ฌ๋žŒ์€ ์ ์‘์˜ ๋™๋ฌผ์ด๋ผ๊ณ  ๋ฒ„์ „ ์—…๋„ ํ•˜๋ฉด ํ• ์ˆ˜๋ก ์‹ค๋ ฅ์ด ๋Š˜์–ด๊ฐ€๋Š” ๊ฒŒ ์‹ ๊ธฐํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
์•ˆ๋“œ๋กœ์ด๋“œ, IOS์™€ ์ง€์ง€๊ณ  ๋ณถ๊ณ  ํ•˜๋‹ค ๋ณด๋‹ˆ ๋„ค์ดํ‹ฐ๋ธŒ ๋‹จ์˜ ์ดํ•ด๋„ ๋งŽ์ด ๋Š˜์–ด๋‚œ ๊ฒƒ ๊ฐ™๊ณ , ๋งŽ์€ ํŒจํ‚ค์ง€๋“ค์„ ๊นŒ๋ณด๊ณ  patch-package ํ•˜๋‹ค๋ณด๋‹ˆ ์–ด๋–ค ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€ ์ž์‹ ๊ฐ๋„ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
์ด์ œ ๋ง‰ ๋ฒ„์ „ ์—…์„ ํ•˜์‹  ๋ถ„๋“ค์€ ๊ฑฑ์ •์ด ์•ž์„œ๊ฒ ์ง€๋งŒ ๊ทธ๋ž˜๋„ "ํ•˜๋ฉด ๋œ๋‹ค"๋ผ๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ๋„ค์š”.
ํŒŒ์ดํŒ…

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


์˜คํ”ˆ ์ฑ„ํŒ