① 배운 것
방법
1. firebase 프로젝트자체는 1개만 만들고 그 안에 앱을 필요에 따라 만든다.
나같은 경우는
dev는 package가 co.example.example.dev이고 prod,iap는 package가 co.example.example이라서
패키지에 따라 안드로이드 2개, iOS 2개 씩 총 4개의 앱을 만들었음

appId: environment == 'prod'
? '${prod_app_id}'
: '${dev_app_id}',
iOS/FirebaseConfig/deviOS/FirebaseConfig/prodiOS/FirebaseConfig/iap그 후 xCode > Build Phases > + > New Run Script Phase 을 클릭해 스크립트를 작성해줘야한다.
//나 같은 경우는 configuration이 debug-dev/release-prod/debug-iap 이런 식이라
//'-'를 기준으로 뒤에것을 가져와서 활용했다.
if [[ $CONFIGURATION =~ -([^-]*)$ ]]; then
flavor=${BASH_REMATCH[1]}
fi
//flavor에 따라 해당 폴더를 찾아가게 만듦
GOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist
GOOGLESERVICE_INFO_FILE=${PROJECT_DIR}/FirebaseConfig/${flavor}/${GOOGLESERVICE_INFO_PLIST}
if [ ! -f "$GOOGLESERVICE_INFO_FILE" ]; then
echo "No GoogleService-Info.plist found. Please ensure it's in the proper directory."
exit 1
fi
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
cp "${GOOGLESERVICE_INFO_FILE}" "${PLIST_DESTINATION}"
Build Phase 의 Copy Bundle Resource에 GoogleService-info.plist파일이 이미 설정되어있다면 삭제해서 중복적으로 만들어 지지 않게 해야한다.
그리고 안드로이드와 동일하게 플러터 firebase_options.dart파일에서 필요한 부분을 변경해준다.
나는 다른건 사용하고 있지 않기 때문에 appId부분만 바꿔주면 되었다.
appId: environment == 'prod'
? '${prod_app_id}'
: '${dev_app_id}',
그리고 main.dart에서 firebase를 init할때 options 속성을 설정해서 초기화하면된다
await Firebase.initializeApp(
//google-services.json` 파일이랑 `GoogleService-Info.plist`파일이 있다면 자동으로 options를 만들어주지만
//우리는 flavor에 따라 다른 app_id를 사용하기 때문에 직접 설정해줘야한다.
options: DefaultFirebaseOptions.currentPlatform,
);
② 회고 (restropective)
③ 개선을 위한 방법