본문으로 건너뛰기

블로그

React Native 앱 개발 도구 Expo의 SDK 58이 나왔습니다. 올리기 전에 코드와 빌드가 어떻게 달라지는지 변경 노트에서 다섯 가지를 골랐습니다.

작성

Expo는 React Native로 iOS와 안드로이드 앱을 만드는 개발 도구입니다. 자바스크립트용 패키지 expo의 npm 주간 다운로드는 10,273,164회입니다.

10월 15일에 Expo SDK 58이 나왔습니다. React Native는 0.88로 올라갔고, iOS 27 지원과 Expo UI 확장 같은 새 기능이 많습니다. 다만 변경 노트에는 기존 앱이 그대로 돌아가지 않을 수 있는 항목이 길게 적혀 있습니다. 업그레이드 명령을 치기 전에 꼭 볼 만한 다섯 가지만 골랐습니다.

Expo SDK 58 변경 노트의 대표 이미지

그림: Expo 변경 기록

SDK 58은 UIKit의 scene 기반 생명주기를 씁니다. 그래서 프리빌드를 돌리면 SceneDelegate.swift가 새로 만들어집니다. AppDelegate.swift를 직접 고쳐 쓰는 팀이거나 ios 폴더를 손으로 관리한다면, 변경 노트의 scene 생명주기 마이그레이션 안내를 따라 코드를 옮겨야 합니다.

반대로 네이티브 폴더를 직접 만지지 않고 Continuous Native Generation으로 관리한다면, 노트의 안내는 이전 SDK에서 생긴 android와 ios 폴더를 지우고 다시 만드는 것입니다.

안드로이드 릴리스 빌드에 코드 축소 도구 R8이 기본으로 적용됩니다. 이전에는 켜지 않고도 잘 돌던 앱이 릴리스 빌드에서만 클래스를 찾지 못할 수 있다는 뜻입니다. 변경 노트는 이 항목을 호환성이 깨지는 변경으로 분류했습니다.

릴리스 빌드를 한 번도 시험하지 않고 스토어 제출 직전에 SDK를 올리는 일정이라면 가장 먼저 걸릴 수 있는 곳입니다.

expo-file-system의 File.write()가 비동기로 바뀌었습니다. 예전처럼 바로 끝나길 기대하고 다음 줄에서 파일을 읽는 코드는 값이 비어 있을 수 있습니다. 예전 동작이 필요하면 File.writeSync()를 쓰라고 노트는 안내합니다.

같은 줄에서 File.md5는 File.digest()로 옮기라고 권고합니다. 아직 지원되지만 앞으로 사라질 이름입니다.

Expo 로고

그림: expo.dev

expo-sqlite에서 libSQL 지원이 빠졌습니다. syncLibSQL()과 libSQLOptions를 쓰던 앱이라면 SDK 58로 올리기 전에 다른 방법을 정해야 합니다.

5. 개발 환경에서 바뀌는 동작

5. 개발 환경에서 바뀌는 동작
`expo login`기본이 브라우저 로그인
`NODE_ENV`명령에 따라 development 또는 production으로 설정, `.env` 읽는 방식이 달라짐
Node.js홀수 버전(23, 25 등)은 지원하지 않음
macOSSDK 58에서 지원하지 않음

출처: Expo SDK 58 변경 기록

^58.0.0 --fix

expo 설치npx expo install expo→ 점검 (latest)

latest

점검npx expo-doctor→ 변경 항목 확인
변경 항목 확인호환성이 깨지는 변경과 사용 중단
개발 빌드 새로 만들기expo-dev-client를 쓸 때
  • expo 설치 → 점검
  • 점검 → 변경 항목 확인
  • 변경 항목 확인 → 개발 빌드 새로 만들기
출처: Expo SDK 58 변경 기록

Expo Go 쪽은 따로 알아 둘 것이 있습니다. SDK 58용 Expo Go는 앱 스토어에 올라오기까지 몇 주가 걸리고, 새 Expo Go는 SDK 58만 지원한다고 노트는 적었습니다. 그동안은 개발 빌드로 확인해야 합니다.

저라면 새 기능보다 R8과 scene 생명주기부터 시험하겠습니다. 둘 다 기능을 켜서 얻는 이득이 아니라 앱이 깨질 수 있는 쪽이기 때문입니다. 반대로 Expo UI나 App Intents는 알파나 베타로 적혀 있는 것이 있어서, 이번에는 구경만 해도 됩니다.

개발 빌드를 새로 만드는 일이 의외로 오래 걸립니다. 이 변경 노트를 기준으로 하루쯤 따로 잡아 두는 편이 안전해 보입니다. 단, 노트는 앱마다 어떤 항목이 실제로 걸리는지까지는 알려 주지 않으므로 직접 확인해야 합니다.

새 버전으로 이어지는 점들

  • Tauri는 v2.12.5로 설치 프로그램 문제를 손봤습니다. 지난 글에서 다뤘습니다
  • Android 에이전트 스킬 저장소 android/skills는 주간 873 스타를 받았습니다
  • react-native의 npm 주간 다운로드는 13,054,365회입니다

출처