iOS 빌드 및 Firebase 인증 문제 해결 과정 상세 기록
1. EAS Production 빌드 시 pod install 실패 (iOS)
- 문제 상황: iOS 앱 심사를 위해 EAS를 통해 Production 빌드를 시도했으나,
pod install단계에서 지속적으로 실패했습니다. - 원인 추정: EAS 빌드 환경에서의 Cocoapods 의존성 처리 문제 또는 특정 Pod과의 호환성 문제일 수 있습니다.
2. 로컬 prebuild 및 수동 pod install 시도
- 조치 사항: EAS 빌드 대신
expo prebuild명령어를 사용하여 네이티브 iOS 프로젝트를 생성하고, 로컬 환경에서 직접pod install을 실행했습니다. - 결과: 여러 시도 끝에
pod install은 성공적으로 완료되었습니다.
3. Xcode 빌드 시 'react/runtime/JSRuntimeFactory.h' 에러 발생
- 문제 상황:
pod install성공 후 Xcode에서 프로젝트를 빌드하는 과정에서'react/runtime/JSRuntimeFactory.h' file not found와 유사한 에러가 발생하며 빌드에 실패했습니다. - 원인 추정: React Native 버전과 관련된 헤더 파일 경로 문제, New Architecture (Fabric) 활성화와 관련된 설정 미흡, 또는 Cocoapods가 생성한 프로젝트 설정과의 불일치 등일 수 있습니다.
- 조치 사항: 인터넷 검색을 통해 관련 해결 방법을 찾아 적용했습니다. (일반적으로 헤더 검색 경로 수정,
use_frameworks!설정 조정, 또는 특정 React Native 버전 관련 패치 적용 등이 포함될 수 있습니다.) - 결과: 해당 빌드 에러를 해결했습니다.
4. 빌드 성공 후 Firebase Auth 관련 런타임 에러 발생 (iOS)
- 문제 상황: 앱 빌드는 성공했으나, 실행 시 Firebase 인증(Auth) 관련 기능에서 "Component auth has not been registered yet" 오류가 발생했습니다. 이 문제는 Android에서는 발생하지 않고 iOS에서만 특정적으로 나타났습니다.
- 원인: Expo SDK 53 업데이트 이후 Metro 번들러가 Firebase JS SDK의
package.json내exports필드를 처리하는 방식과 호환성 문제가 발생하여, Firebase Auth 모듈이 제대로 로드되지 않는 문제였습니다. - 조치 사항: 인터넷 검색을 통해 Expo SDK 53과 Firebase JS SDK 간의 호환성 문제 해결 방법을 찾았고, 프로젝트 루트의
metro.config.js파일을 다음과 같이 수정했습니다:// /Users/siwoo/Downloads/DateP/metro.config.js const { getDefaultConfig } = require('expo/metro-config'); const { withNativeWind } = require('nativewind/metro'); const config = getDefaultConfig(__dirname); // Firebase / Expo SDK 53+ Compatibility Fix config.resolver.sourceExts = config.resolver.sourceExts || []; if (!config.resolver.sourceExts.includes("cjs")) { config.resolver.sourceExts.push("cjs"); } config.resolver.unstable_enablePackageExports = false; module.exports = withNativeWind(config, { input: './global.css' }); - 결과:
metro.config.js수정 후 Firebase Auth 관련 에러가 해결되었습니다.
현재 상태 및 다음 단계
위의 과정을 통해 iOS 빌드 및 Firebase Auth 관련 주요 문제들이 해결된 것으로 보입니다.
다음 단계: 최종적으로 앱의 모든 기능이 iOS에서 정상적으로 작동하는지 다시 한번 꼼꼼히 확인한 후, App Store 심사를 위해 빌드 파일을 제출할 예정입니다.
'DateP' 카테고리의 다른 글
| 2025 05 22 목 ios 구독 결제 테스트 (0) | 2025.05.23 |
|---|---|
| 2025년 5월 21일 애플 심사 반려 (1) | 2025.05.21 |
| "DateP 프로젝트: Android 출시 및 iOS 최적화 작업 요약 - 2025년 5월 15일" (0) | 2025.05.15 |
| 크레딧 기반 구독 시스템 구축 여정 (0) | 2025.05.08 |
| 구독 복구 로직 보강 (0) | 2025.05.07 |