회사에서 같은 컨셉의 앱을 여러 국가에 배포를 하려다 보니 프로젝트를 여러개 만들어 버전을 관리해야 되는 상황이 생겼다.
Ex) com.test.app.kr, com.test.app.kh, com.test.app.mn 등등.. 뒤에 국가코드를 붙여 프로젝트를 나누어 개발하고 있었음
이렇게 개발을 하니 하나의 수정사항이 발생하면 똑같은 코드를 각 다른 국가 프로젝트에서 수정을 일일이 혼자서 해야되는 번거로움이 발생해 하나의 프로젝트로 뒤의 국가코드만 변경해서 빌드할수있도록 개발을 하려고 한다!
android/app/build.gradle 파일에서 android{ .. } 블록 안에 flavorDimensions, productFlavors를 추가하면 된다.
- flavorDimensions, productFlavors?
Gradle Plugin에서 build variant를 정의하는 두가지 키워드로
fravorDimensions는 분류하는 차원을 선언하는 곳이며
productFlavors는 실제 빌드할 여러가지 앱을 선언하는 곳.
각 flavor는 dimension 속성으로 위에서 선언한 flavorDimensions 중 하나를 선택할수 있음.
android{
flavorDimensions "country"
productFlavors{
kr{
dimension "country"
applicationIdSuffix ".kr"
}
us {
dimension "country"
applicationIdSuffix ".kr"
}
}
}
android/app/src/kr/... , android/app/src/us/...등 폴더를 생성해서 쓰면 됨


만약 debug,release 따로 Configurations를 등록하려면

Runner의 xcconfig를 변경해주면 된다.
Runner 클릭 후 Signing & Capabilities 탭으로 이동 후

각 탭의 패키지 이름을 바꿔주면 된다.
Xcode에서 Runner 프로젝트 → Runner 타겟 → Build Settings
Packaging 섹션의 Info.plist File 항목을 찾습니다.
기본값인 (SRCROOT)/Runner/Info-kr.plist (또는 실제 존재하는 파일명) 으로 변경
Xcode에서 Runner 프로젝트 → Runner 타겟 → Build Settings
Assets에서 파일 생성해주고 
사진 등록
ASSETCATALOG_COMPILER_APPICON_NAME 검색
icon이름 변경
flutter run --flavor kr -t lib/main.dart
flutter build ios --flavor kr -t lib/main.dart
https://velog.io/@sybaek97/iOS-Command-PhaseScriptExecution-failed-with-a-nonzero-exit-code