[해결됨] Expo Firebase iOS 빌드 에러: 'non-modular header inside framework module RNFBApp' 해결책 (forceStaticLinking)

Expo 에서 Firebase 연동이 안되요. non-modular header inside framework module 'RNFBApp.RCTConvert_FIRApp' 에러

Expo 공부하면서 Firebase 연동을 시도해보고자 했습니다. 하지만 아래와 같은 에러가 발생했어요.

1. 에러 사항
  18 | #import <FirebaseCore/FirebaseCore.h>
> 19 | #import <React/RCTConvert.h>
     |         ^ include of non-modular header inside framework module 'RNFBApp.RCTConvert_FIRApp': '.../ios/Pods/Headers/Public/React-Core/React/RCTConvert.h' [-Werror,-Wnon-modular-include-in-framework-module]
  20 |
  21 | @interface RCTConvert (FIRApp)
  22 | + (FIRApp *)firAppFromString:(NSString *)appName;

ChatGPT, Claude, Gemini 다 물어봤는데 Nodejs, React, React native, Expo 버전을 조정하라는 말만 반복할 뿐 진짜 문제는 답하지 않아 결국엔 구글링을 하게 되었습니다.


2. 해결 방법

참고링크:

app.json 에 ”forceStaticLinking”: [“RNFBApp”, “RNFBAnalytics”] 를 추가하면 됩니다.

"plugins": [
    "@react-native-firebase/app",
    [
        "expo-build-properties",
        {
            "ios": {
                "useFrameworks": "static",
                "forceStaticLinking": ["RNFBApp", "RNFBAnalytics"]
            },
            "android": {}
        }
    ],
]

React Native 에서도 Firebase 연동했을 때 고생을 했는데 Expo 에서도 예기치 못한 이슈가 발생하네요…

React Native, Expo 모두 개발해 보면서 느낀점은 라이브러리를 연동할 때가 더 시간이 많이 소요되고 AI 로도 해결이 잘 안된다는 점입니다.




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • 데이터베이스 관계키(FK) 는 꼭 사용해야 할까?
  • 데이터베이스 LIKE문 제대로 이해하고 사용하기
  • 데이터베이스 인덱스 동작방식 그리고 최적화
  • 대용량 디비에 파티션을 활용해야 하는 이유
  • 무료 프록시, 크롤러 실패의 지름길, 유료 프록시가 필수인 7가지 기술적 이유