Flutter에서 앱의 빌드 버전을 설정하는 방법은 무엇인가요?
_____A1: 빌드 버전은 앱의 현재 릴리즈 상태를 나타내는 숫자 또는 문자열로, 주로 `버전 번호 (version)`와 `빌드 번호 (build number)`로 구성됩니다. 사용자는 버전 번호를 통해 앱 업데이트 유무를 판단하고, 운영체제는 빌드 번호로 앱의 업데이트 우선순위를 결정합니다.
---
Q2: Flutter에서 빌드 버전과 빌드 번호를 어디에서 설정하나요?
A2: 빌드 버전과 빌드 번호는 Flutter 프로젝트의 `pubspec.yaml` 파일 내 `version` 필드에서 설정합니다.
예시:
```yaml
version: 1.2.3+45
```
- `1.2.3`은 앱의 버전 번호 (major.minor.patch)
- `45`는 빌드 번호(build number)
---
Q3: `pubspec.yaml`의 version 값에서 ‘+’ 기호는 무슨 의미인가요?
A3: `+` 기호는 버전 번호와 빌드 번호를 구분합니다. `version: 1.0.0+1`에서 `1.0.0`은 버전 번호이고 `1`은 빌드 번호입니다.
---
Q4: Android에서 빌드 번호와 버전 이름은 어떻게 매핑되나요?
A4: Flutter 빌드 번호와 버전은 Android의 `android/app/build.gradle` 파일의 아래 항목에 자동으로 매핑됩니다.
- `versionName` → Flutter의 버전 번호 (예: 1.0.0)
- `versionCode` → Flutter의 빌드 번호 (예: 1)
Flutter는 `pubspec.yaml`의 버전 정보를 빌드시 자동으로 이곳에 반영합니다. 직접 수정할 필요는 없습니다.
---
Q5: iOS에서 빌드 버전과 빌드 번호는 어떻게 매핑되나요?
A5: iOS에서는 `ios/Runner.xcodeproj/project.pbxproj`와 `Info.plist`에 다음과 같이 매핑됩니다.
- `CFBundleShortVersionString` → Flutter 버전 번호 (예: 1.0.0)
- `CFBundleVersion` → Flutter 빌드 번호 (예: 1)
`pubspec.yaml`의 `version` 필드가 빌드시 자동으로 이 설정에 반영됩니다.
---
A6: `pubspec.yaml`의 `version` 값을 수정하여 변경할 수 있습니다. 예를 들어 현재가 `1.0.0+1`이라면:
```yaml
version: 1.0.1+2
```
- 버전 번호를 `1.0.1`로 올리고
- 빌드 번호는 `2`로 올림
그 후 저장하고, 다시 빌드하면 변경된 버전으로 앱이 생성됩니다.
---
Q7: 빌드 번호(버전코드)를 반드시 올려야 하나요?
A7: 네, 특히 Android의 경우 구글 플레이 스토어는 동일 버전코드로는 업데이트를 허용하지 않습니다. 따라서 빌드 번호는 항상 이전보다 높은 숫자로 설정해야 합니다.
---
Q8: 빌드 명령어에서 버전 정보를 바로 바꾸는 방법이 있나요?
A8: Flutter 자체 CLI에서는 `--build-name`과 `--build-number` 옵션을 제공합니다.
예:
```bash
flutter build apk --build-name=1.0.2 --build-number=3
```
이런 식으로 빌드 시 일시적으로 버전을 변경할 수 있습니다.
---
Q9: Flutter 빌드 버전 확인 방법은?
A9: 빌드된 앱 내부에서 `package_info_plus` 같은 패키지를 이용해 코드에서 버전 정보를 조회할 수 있습니다. 또는 배포 후 앱 설정화면에서 버전을 확인할 수 있습니다.
---
요약:
- `pubspec.yaml`의 `version` 필드에서 `버전번호+빌드번호` 형식으로 설정
- Android, iOS에 자동 반영됨
- 빌드 번호는 반드시 점진 증가
- CLI 명령어에서 즉시 변경 가능(`--build-name`, `--build-number`)
- 배포 전 항상 올바른 버전을 설정해야 앱스토어 정책을 준수할 수 있음
Flutter 앱의 버전 관리는 `pubspec.yaml` 파일에서 이루어지며, 이 파일은 Flutter 프로젝트의 메타데이터를 포함하고 있습니다.
아래에서는 Flutter 앱의 빌드 버전을 설정하는 방법에 대해 자세히 설명하겠습니다.
1. `pubspec.yaml` 파일 열기 Flutter 프로젝트의 루트 디렉토리에서 `pubspec.yaml` 파일을 찾습니다.
이 파일은 프로젝트의 의존성, 버전, 이름 등 다양한 정보를 포함하고 있습니다.
2. 버전 정보 설정 `pubspec.yaml` 파일에서 `version` 필드를 찾아 수정합니다.
버전 정보는 다음과 같은 형식으로 설정됩니다: ``` version: x.y.z+build ``` - `x.y.z`: 주 버전, 부 버전, 패치 버전을 나타냅니다.
- `build`: 선택적 필드로, 빌드 번호를 나타냅니다.
이 값은 앱의 업데이트를 관리하는 데 사용됩니다.
예를 들어, 다음과 같이 설정할 수 있습니다: ```yaml version: 1.0.0+1 ``` 여기서 `1.0.0`은 앱의 버전 번호이고, `1`은 빌드 번호입니다.
3. 버전 번호의 의미 - 주 버전 (Major version) : 큰 변화가 있을 때 증가합니다.
예를 들어, API의 호환성이 깨지거나 주요 기능이 추가될 때. - 부 버전 (Minor version) : 새로운 기능이 추가되지만, 이전 버전과의 호환성이 유지될 때 증가합니다.
- 패치 버전 (Patch version) : 버그 수정이나 작은 개선이 이루어질 때 증가합니다.
- 빌드 번호 (Build number) : 앱의 빌드 버전을 나타내며, 일반적으로 앱을 배포할 때마다 증가시킵니다.
4. Android 및 iOS에서의 버전 반영 `pubspec.yaml` 파일에서 버전을 설정하면, Flutter는 이 정보를 Android와 iOS 프로젝트에 자동으로 반영합니다.
각 플랫폼에서의 버전 정보는 다음과 같이 설정됩니다.
Android Android의 경우, `android/app/build.gradle` 파일에서 `versionCode`와 `versionName`이 자동으로 업데이트됩니다.
`versionCode`는 정수형으로, 앱의 업데이트를 관리하는 데 사용됩니다.
`versionName`은 사용자에게 표시되는 버전 번호입니다.
iOS iOS의 경우, `ios/Runner.xcodeproj/project.pbxproj` 파일에서 `CURRENT_PROJECT_VERSION`과 `MARKETING_VERSION`이 자동으로 업데이트됩니다.
`MARKETING_VERSION`은 사용자에게 표시되는 버전 번호이며, `CURRENT_PROJECT_VERSION`은 빌드 번호입니다.
5. 버전 업데이트 시 주의사항 - 버전 관리 정책 : 팀 내에서 버전 관리 정책을 정하고, 일관되게 적용하는 것이 중요합니다.
예를 들어, 어떤 경우에 주 버전을 증가시킬지, 부 버전을 증가시킬지에 대한 규칙을 정해두면 좋습니다.
- 테스트 : 버전 업데이트 후에는 반드시 앱을 테스트하여 모든 기능이 정상적으로 작동하는지 확인해야 합니다.
- 배포 : 앱을 배포할 때는 각 플랫폼의 요구 사항에 맞게 버전 정보를 설정해야 합니다.
예를 들어, Google Play Store와 Apple App Store는 각각의 버전 관리 규칙이 있으므로, 이를 준수해야 합니다.
결론 Flutter에서 앱의 빌드 버전을 설정하는 것은 간단하지만, 앱의 배포 및 업데이트 관리에 있어 매우 중요한 과정입니다.
`pubspec.yaml` 파일에서 버전 정보를 설정하고, 이를 통해 Android와 iOS 프로젝트에 자동으로 반영되도록 할 수 있습니다.
버전 관리 정책을 정하고, 일관되게 적용하는 것이 성공적인 앱 개발과 배포에 큰 도움이 됩니다.
작성자:
정재현 [비회원]
| 작성일자: 1년 전
2024-09-19 01:51:24
조회수: 379 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 379 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.