우당탕탕
Flutter 앱 첫 출시하면서 겪은 2026년 최신 시행착오들 정리 본문
Flutter 앱을 처음 출시하려고 하니 생각보다 시행착오가 많아서 이걸 꼭 기록해둬야겠다는 마음에 글을 쓰게 됐어요. 2026년 들어서 Flutter 환경이나 앱 스토어 정책, 그리고 개발 툴 체계가 작년과 조금 달라진 부분들이 있어서 더 헷갈렸거든요.
이 글에서는 제가 처음으로 Flutter 앱을 구글 플레이스토어와 애플 앱스토어에 출시하면서 겪었던 주요 문제들, 그리고 2026년 최신 변경점에 따른 주의사항들을 중심으로 차근차근 얘기해볼게요. 실제 코드, 설정, 그리고 배포 과정에서 막혔던 부분들까지 모두 담았습니다.
개발 환경 / 버전 정보
저는 Flutter 3.13.0 버전을 기준으로 작업했어요. 여기에 Dart 3.1도 사용했고, Android SDK는 API 33, Xcode는 14.3 버전이었어요.
중요한 점은 2026년부터 Android App Bundle이 사실상 필수라서 APK 단독 배포는 거의 못 한다는 것, 그리고 iOS는 Apple의 새로운 개인정보 보호 정책 때문에 앱 심사 시 추가 권한 안내가 필요해졌다는 점이에요.
앱 배포를 위한 필수 준비 단계 이렇게 했어요
사실 이 부분이 가장 우선인데, 저도 처음엔 뭘 어떻게 설정해야 하는지 막막했거든요. 특히 구글 플레이 콘솔과 애플 개발자 계정에서 요구하는 설정이 많아서 헷갈렸어요.
- 구글 플레이 콘솔에 앱 등록: 앱 서명을 위해
SHA-256키를 설정해야 하고, 2026년부터 API 레벨 33 이상이 필수라서build.gradle에서 최소 SDK 버전을 체크했어요. - 애플 개발자 계정: 앱 심사 과정에서 App Privacy Details를 꼼꼼히 작성해야 하고,
Info.plist에 권한 설명 문구를 반드시 넣어야 하더라고요.
이 단계를 넘기면 Flutter 빌드 자체는 비교적 수월한 편이에요. 하지만 2026년 이후로는 앱 심사 기준이 더 까다로워진 느낌이라 꼼꼼하게 준비해야 하더라고요.
실제 Flutter 빌드 & 배포 시 주의할 점
Flutter 프로젝트에서 가장 많이 헷갈리는 게 빌드와 서명 설정이에요. 저도 처음에 APK와 App Bundle 혼동해서 두세 번 오류났었거든요. 2026년부터는 공식적으로 aab 파일(앱 번들) 위주로 올려야 하니 꼭 참고하세요.
// android/app/build.gradle 중 서명 관련 설정 예시
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
위처럼 signingConfigs와 buildTypes 설정이 맞아야 빌드 후 앱이 제대로 서명돼요. 안 그러면 ‘Your APK is not signed’ 같은 오류가 뜨거든요.
그리고 iOS 쪽은 Xcode에서 Runner.xcworkspace 열어서 배포용 프로비저닝 프로파일과 인증서도 꼼꼼히 확인해야 해요. 2026년부터는 Apple 정책상 신규 앱은 UIKit for Mac 지원도 권장하게 바뀌었더라고요.
이 부분에서 가장 많이 삽질했어요
앱을 제출하기 전부터 저는 몇 가지 오류 메시지에 걸려서 한참 헤맸는데요. 대표적으로 아래 오류가 계속 떴었어요:
ERROR: Failed to execute aapt
Output: ERROR: resource style/LaunchTheme not found.
이게 왜 나는지 한참 찾았는데, 보니까 android/app/src/main/res/values/styles.xml이나 Flutter 3.x 버전에서 기본으로 생성되는 런치 스크린 테마가 누락됐더라고요. 그래서 직접 해당 파일을 확인하고 제대로 세팅해주니까 해결됐어요.
또 iOS 빌드 때 pod install 과정에서 발생한 의존성 충돌 문제도 있었죠. 아래 오류였는데요:
ERROR: [iOS] CocoaPods could not find compatible versions for pod "Firebase/Core":
In Podfile:
Firebase/Core (= 10.0.0)
None of your spec sources contain a spec satisfying the dependency: `Firebase/Core (= 10.0.0)`.
이건 Firebase 라이브러리 버전을 최신 Xcode 환경에 맞게 맞추지 않아서 그랬던 건데, pubspec.yaml과 Podfile 의존성 버전을 동기화시켜서 해결했어요.
이렇게 하면 배포가 훨씬 매끄러워요
배포 단계에서는 아래 팁들만 체크하면 꽤 수월해요.
- 빌드 전에
flutter clean꼭 실행하기. 이전 빌드 캐시 때문에 문제가 생길 수 있어요. - 플랫폼별 권한 설명(특히 iOS의
Info.plist) 꼼꼼히 채우기. 심사에서 되게 중요해요. - 서명 인증서, 프로비저닝 프로파일 만료 날짜 주기적으로 확인하기.
- Play Console에서 앱 번들 업로드 후 Pre-launch report 꼭 확인해서 앱 안정성 체크하기.
- Google Play App Signing 정책에 맞게 키 관리하기. 키를 잃으면 진짜 낭패예요.
자주 물어보시는 것들
Q. Flutter로 만든 앱, 안드로이드 33에서 꼭 빌드해야 하나요?
A. 네, 2026년 기준으로 Google Play는 API 33 이상이 필수입니다. 그렇지 않으면 앱 심사 자체가 통과되지 않으니 꼭 compileSdkVersion 33으로 설정하세요.
Q. iOS 앱 심사에서 권한 설명이 안 들어가면 어떻게 되나요?
A. 심사에서 반려되고 거절 사유가 뜨기 때문에 앱이 출시가 안 됩니다. 꼭 Info.plist에 사용자 프라이버시 권한에 대한 설명을 넣고, 관련 안내 창을 앱에서 띄우는 게 필수예요.
Flutter 앱 첫 출시가 생각보다 까다롭고 여러 번 삽질했지만, 2026년 최신 환경에 맞춰서 배포 프로세스를 정리하다 보니 이젠 좀 자신감이 생겼어요. 앞으로 최신 버전 Flutter와 앱 마켓 정책 변화에 대응하려면 늘 문서나 릴리스 노트를 꼼꼼히 확인하는 게 가장 중요하다는 걸 크게 느꼈습니다.
'Tech > Flutter' 카테고리의 다른 글
| Flutter 상태관리 Riverpod 직접 써본 경험과 자주 묻는 질문들 (0) | 2026.06.04 |
|---|---|
| Flutter 빌드 시간 단축, 제가 직접 해보니 이렇게 하더라고요 (0) | 2026.06.03 |
| Flutter 푸시 알림 FCM 연동하다 막혔던 부분과 해결법 (0) | 2026.05.31 |
| [Flutter] 플러터란? - 플러터 입문 (1) | 2022.08.25 |
