IT/Flutter

Xcode에서 아카이브 하기 전 앱 버전 업 체크 순서 정리

belzebuete 2026. 4. 15. 17:23
반응형

Flutter로 iOS 앱을 배포하다 보면,

버전을 올렸다고 생각했는데 막상 Xcode에서 아카이브하려고 보면

예전 버전 번호가 남아 있는 경우가 있다.

 

특히 App Store 제출 직전에는

이런 사소한 버전 꼬임 하나가 괜히 신경을 긁는다.

한 번 꼬이면 “내가 뭘 빼먹었지?” 하면서 같은 화면만 빙글빙글 돌게 된다.

 

그래서 이번 글에서는

Xcode에서 아카이브하기 전에 앱 버전을 올릴 때 내가 확인하는 순서를 정리해보려고 한다.

 


 

왜 미리 확인해야 할까?

 

Flutter 프로젝트는 단순히 pubspec.yaml만 수정한다고 끝나지 않을 때가 있다.

빌드 캐시나 iOS 쪽 설정이 남아 있으면

Xcode에서 이전 버전 정보가 계속 보일 수도 있다.

 

특히 iOS 배포에서는 아래 두 값이 중요하다.

 

  • MARKETING_VERSION
  • CURRENT_PROJECT_VERSION

 

이 둘이 꼬이면

겉으로 보이는 앱 버전과 내부 빌드 번호가 달라져서

아카이브 단계에서 다시 확인하게 된다.

 


 

내가 체크하는 순서

 

 

1. 먼저 

pubspec.yaml

 버전 수정

 

가장 먼저 Flutter 프로젝트의 버전 값을 수정한다.

 

예를 들면 이런 식이다.

version: 1.0.1+3

여기서:

 

  • 1.0.1 → 사용자에게 보이는 앱 버전
  • 3 → 빌드 번호

 

이 값을 바꾸면 Flutter가 iOS 쪽 설정 파일에도 반영해준다.

그래도 늘 고분고분하진 않다. 그래서 아래 파일들도 같이 확인하는 편이다.

 

 

같이 확인할 파일

 

  • ios/Flutter/Generated.xcconfig
  • ios/Flutter/flutter_export_environment.sh

 

이 파일들 안에 버전 관련 값이 반영되어 있는지 보면

지금 Flutter가 어떤 값을 iOS로 넘기고 있는지 감이 온다.

 


 

2. iOS 빌드 관련 정리

 

버전이 꼬였거나, 이전 캐시가 남아 있을 가능성이 있으면

나는 아래 순서로 정리한다.

flutter clean
rm -rf ios/Pods ios/Podfile.lock
flutter pub get
cd ios && pod install && cd ..
flutter run

 

각 명령어를 왜 쓰는가?

 

 

flutter clean

Flutter 빌드 캐시를 정리한다.

이전 버전 정보가 남아 있을 가능성을 줄여준다.

 

 

rm -rf ios/Pods ios/Podfile.lock

iOS 의존성 관련 파일을 지운다.

Pod 설정이 꼬였거나 이전 상태가 남아 있을 때 새로 정리하기 좋다.

 

 

flutter pub get

패키지를 다시 받아온다.

Flutter 프로젝트 상태를 다시 맞춰주는 단계다.

 

 

cd ios && pod install && cd ..

iOS Pod 의존성을 다시 설치한다.

특히 CocoaPods 쪽이 예민할 때 이 단계가 중요하다.

 

 

flutter run

실제로 한 번 실행해본다.

버전 변경이 제대로 반영됐는지, 앱이 정상 실행되는지 확인하는 용도다.

 


 

3. Xcode에서 최종 버전 값 확인

 

여기까지 했으면 이제 Xcode를 열고

아카이브 전에 꼭 버전 값을 확인한다.

 

확인 위치는 보통:

 

Runner > Targets > Runner > Build Settings

 

여기서 아래 두 값을 본다.

 

 

MARKETING_VERSION

 

사용자에게 보이는 버전이다.

예: 1.0.1

 

 

CURRENT_PROJECT_VERSION

 

빌드 번호다.

예: 3

 

즉,

 

  • MARKETING_VERSION = 1.0.1
  • CURRENT_PROJECT_VERSION = 3

 

이렇게 되어 있으면

version: 1.0.1+3 과 맞아떨어진다.

 


 

4. 여기서 값이 다르면?

 

가끔 pubspec.yaml은 제대로 바꿨는데

Xcode 쪽 값이 그대로인 경우가 있다.

 

그럴 때는 괜히 멘탈부터 흔들리지 말고, 아래를 의심해보면 된다.

 

  • flutter clean이 안 된 경우
  • iOS 캐시가 남아 있는 경우
  • Pods가 이전 상태를 유지하는 경우
  • Xcode가 이전 설정을 들고 있는 경우

 

그래도 안 맞으면

Xcode의 MARKETING_VERSION, CURRENT_PROJECT_VERSION를 직접 확인하고

필요하면 수동으로 맞춰주는 것도 방법이다.

 


 

내가 실제로 보는 체크리스트

 

아카이브 전에 나는 거의 아래 순서로 확인한다.

 

 

아카이브 전 버전 업 체크리스트

 

  1. pubspec.yaml 버전 수정
  2. Generated.xcconfig 반영 여부 확인
  3. flutter_export_environment.sh 반영 여부 확인
  4. flutter clean
  5. ios/Pods, Podfile.lock 삭제
  6. flutter pub get
  7. pod install
  8. flutter run으로 실행 확인
  9. Xcode에서 MARKETING_VERSION 확인
  10. Xcode에서 CURRENT_PROJECT_VERSION 확인
  11. 이상 없으면 아카이브 진행

 


 

마무리

 

버전 업 자체는 사실 별거 아닌 작업처럼 보인다.

그런데 앱 배포 직전에는 이런 “별거 아닌 것”이 제일 사람을 붙잡는다.

 

그래서 중요한 건

버전을 수정하는 것보다, 최종적으로 어디에 반영됐는지 확인하는 습관인 것 같다.

 

나도 몇 번 헷갈리고 나서야

아카이브 전에 보는 순서를 아예 고정해두게 됐다.

 

앞으로도 iOS 배포할 때는

이 순서를 기준으로 차근차근 확인할 생각이다.

괜히 감으로 갔다가 App Store Connect 앞에서 다시 울지 않기 위해서.

반응형

'IT > Flutter' 카테고리의 다른 글

Flutter에서 에뮬레이터 기동 및 앱 실행  (1) 2025.06.01