📌 React Native iOS 빌드 & ATT 적용 중 겪은 문제와 해결 과정 (정리)
🚀 1. ATT 적용 & 빌드 오류 발생 (Command PhaseScriptExecution failed)
✅ ATT 적용 코드 개발 (ATT 거부 시 비개인화 광고 적용)
✅ iOS 빌드 실행 → 빌드 실패 (Command PhaseScriptExecution failed with a nonzero exit code)
✅ 문제 해결 시도: 빌드 클린, pod install, node_modules & Pods 삭제 후 재설치
🚨 여전히 해결되지 않음 → 문제 원인을 제대로 파악 못한 상태
🔥 2. 빌드 오류 해결 시도 중 Build service could not create build operation 추가 발생
🚨 기존 빌드 오류 해결하려다 새로운 오류 발생 (Build service could not create build operation: unknown error while handling message)
🚨 iOS 프로젝트가 꼬였을 가능성 고려하여 RN 버전 업그레이드 시도
⚠️ 3. RN 업그레이드 후 완전히 망가짐
✅ react-native-google-mobile-ads 최신 버전이 RN 0.76+을 요구한다는 정보 확인
✅ RN 0.77으로 업그레이드 시도 → 빌드 더 망가짐
🚨 Codegen 관련 오류 (UnsupportedModulePropertyParserError) 발생
🚨 Podfile 수정, react-native.config.js 수정, TurboModule 비활성화 등 시도했지만 문제 해결 안 됨
💀 4. 완전 망가진 후 Git 최신 버전으로 롤백 & ATT 적용 다시 시작
✅ 결국 Git 최신 커밋으로 되돌림 (git reset --hard)
✅ 기존 ATT 적용 코드도 사라짐 → ATT 수정 전 코드 다시 불러와서 처음부터 다시 작업
✅ RN 업그레이드는 보류하고, ATT 적용부터 다시 진행
🎯 5. 배운 점 & 개선할 점
✅ 1️⃣ node_modules, Pods 삭제 및 재설치는 신중하게!
- 라이브러리 버전 문제로 인해 빌드가 더 꼬일 수 있음.
- 빌드 오류 발생 시, 직접 삭제하기 전 문제 원인부터 파악해야 함.
✅ 2️⃣ 해결 후 반드시 git commit을 하자!
- 문제 해결 후 바로 Git에 커밋해서 롤백 가능하도록 관리
- 불필요한 reset이나 stash를 피하고, 작업 단위별로 커밋하면 복구가 쉬움.
✅ 3️⃣ React Native 업그레이드는 react-native upgrade-helper를 활용하자
- RN 버전을 업그레이드하면 많은 의존성이 바뀌기 때문에 신중하게 진행
- 🔗 React Native Upgrade Helper 사용 필수
📌 최종 결론
- ATT 적용은 처음엔 성공한 줄 알았으나, 빌드 오류 (Command PhaseScriptExecution failed)가 발생
- 빌드 오류 해결하려다가 Build service could not create build operation 발생 → 해결 못함
- RN 업그레이드 시도했지만 Codegen 오류로 인해 완전 망가짐
- 결국 Git 최신 커밋으로 롤백 후 ATT 적용부터 다시 작업
🚀 앞으로는 문제 해결 시
✅ 캐시 삭제 & 의존성 재설치 전에 신중하게 검토하고,
✅ Git 커밋을 자주하며,
✅ RN 업그레이드는 upgrade-helper를 활용해서 진행!