Flutter Flavor 빌드 환경 구성

    앱 개발은 일반적으로 최소한 Develop, Release의 두 개의 환경으로 구성됩니다. 
    이렇게 환경을 분리하는 작업을 Flavor라고 하는데, Flutter는 추가적으로 Android, iOS를 세팅해줘야 할 것 같습니다. 
    뭔가 복잡해 보이는데 Flutter는 어떻게 하면 될까요? 

    Flutter에서는 아래와 같이 2개의 라이브러리를 사용하기를 추천합니다. 
    1. flutter_flavor 
    2. flutter_flavorizr

    위 2개의 라이브러리는 각각 차이가 있습니다. 
    결론만 말씀드리면 flutter_flavor는 현재는 Android만 지원합니다. 
    따라서 iOS까지 생각하면 flutter_flavorizr를 사용하기를 추천드립니다. 

    flutter_flavorizr을 기준으로 간단하게 설명하겠습니다. 

    1. 설치 방법 

    dev_dependencies:
      flutter_flavorizr: ^2.1.2

    2. 기본 설정 (pubspec.yaml) - develop, relase에 따른 패키지명/앱이름 분리 

    flavorizr:
      app:
        android:
          flavorDimensions: "flavor-type"
        ios:
    
      flavors:
        develop:
          app:
            name: "Apple App"
    
          android:
            applicationId: "com.example.apple"
    
          ios:
            bundleId: "com.example.apple"
    
        release:
          app:
            name: "Banana App"
    
          android:
            applicationId: "com.example.banana"
          ios:
            bundleId: "com.example.banana"

    3. 추가 설정( 추가적인 빌드별 값 세팅 ) 

    flavorizr:
      app:
        android:
          flavorDimensions: "flavor-type"
        ios:
    
      flavors:
        apple:
          app:
            name: "Apple App"
    
          android:
            applicationId: "com.example.apple"
            resValues:
              variable_one:
                type: "string"
                value: "example variable one"
              variable_two:
                type: "string"
                value: "example variable two"
    
          ios:
            bundleId: "com.example.apple"
            variables:
              VARIABLE_ONE:
                value: "variable1"
              VARIABLE_TWO:
                target: "Debug"
                value: "variable2"

     


    사용법 

    flutter run --flavor <flavorName> -t lib/main-<flavorName>.dart

    예)

    flutter run --flavor apple -t lib/main-apple.dart
    flutter run --flavor banana -t lib/main-banana.dart

    'Flutter(플러터) > Setting' 카테고리의 다른 글

    Flutter Permission ( permission_handler )  (0) 2022.01.14
    Flutter Firebase - iOS  (0) 2022.01.14

    댓글