플러터 iOS 앱 배포 가이드
Flutter로 개발한 앱을 앱스토어에 배포했다. 처음 해보는 일이라 조금 막막했지만, 단계별로 차근차근 진행하다 보니 크게 어렵지 않았다.
우선 사용자 계정을 Xcode에 연결해야 한다. 앱을 배포할 때 에러가 발생했었는데 계정이 연결하지 않아 발생한 오류였다.
아직 Xcode에 계정을 연결하지 못 했다면, CSR 파일부터 생성하자. 그 다음 App ID를 생성하고 Device를 등록한 다음 Provisioning Profile까지 생성해야 iOS 앱을 앱 스토어에 배포할 수 있다.
※ 플러터를 오랫동안 업그레이드 하지 않은 경우, 배포 시 에러가 발생할 수 있다. 빌드를 생성하기 전에 플러터를 업그레이드한다. 단, 버전 차이가 큰 경우 실행되지 않을 수도 있으니 플러터를 업그레이드 한 후 새 프로젝트에서 다시 시작하는 편이 좋다.
앱 레코드 생성하기
Xcode에 내 개발자 계정이 연결한 다음, 앱 스토어 컨넥트에서 어플리케이션 레코드를 생성했다.
어플리케이션 레코드는 애플리케이션에 대한 정보를 저장하고 관리하는 데이터 기록을 의미한다. 예를 들면 앱의 이름, 앱의 새로운 버전 번호, 앱의 가격 등이 여기에 해당된다.
다음 순서대로 앱 스토어 컨넥트에 앱을 등록하면 된다.
1. 먼저 브라우저에서 App Store Connect를 연다.
2. App Store Connect 랜딩 페이지에서 '나의 앱'을 클릭한다.
3. '내 앱' 페이지 왼쪽 상단 모서리에 있는 + 버튼을 눌러 '새 앱'을 선택한다.
4. 표시되는 양식에 앱 세부 정보를 입력한다.
이때 플랫폼 섹션에서 iOS가 선택되어 있는지 확인한다. Flutter는 현재 tvOS를 지원하지 않으므로 해당 확인란은 선택하지 않은 상태로 둔다.
- 회사 이름, 앱 이름, 기본 언어는 등록할 앱에 맞춰 입력한다.
- 번들 ID는 이전(App ID 생성 과정)에 생성한 값을 선택한다.
- 여기서 SKU는 앱의 고유한 내부 코드다. 이 코드로 각각의 앱을 식별한다. 어떻게 작성해야 할지 모르겠다면 이 글을 참고한다.
- 사용자 액세스 권한은 전체 액세스를 선택한다.
- 재한된 액세스: 특정 사용자들만 접근이 가능하다. 주로 베타 테스트나 내부 테스트 목적으로 사용된다.
- 잰체 액세스: 모든 사용자가 다운로드하고 사용할 수 있다. 앱 스토어에 공개적으로 출시되며 제한 없이 모든 사용자가 해당 앱을 설치하고 사용할 수 있다.
다 입력했다면 생성 버튼을 클릭한다.
4. 앱이 생성되면 애플리케이션 세부 정보 페이지로 이동한다. 사이드바에서 '앱 정보'를 선택하고, '일반 정보' 섹션에서 이전에 등록한 번들 ID를 선택한다.
Xcode 프로젝트 설정하기
그 다음 배포하기 전에, Xcode 워크스페이스에서 앱 설정을 제대로 맞췄는지 검토했다.
1. Flutter 프로젝트 디렉토리의 터미널를 실행해 Xcode 워크스페이스를 연다.
$ open ios/Runner.xcworkspace
폴더에서 해당 파일을 직접 찾아 더블클릭하거나 비쥬얼 스튜디오 코드를 사용하는 경우 ios 폴더를 마우스 오른쪽 버튼을 클릭한 다음 open in Xcode를 클릭해도 된다.
2. Xcode 탐색기에서 Runner target을 선택한다.
중요한 설정 확인하기
아래 속성들에 내 앱의 정보들이 정확하게 입력되어 있는지 확인한다.
일반(General) 탭의 ID(Identity) 섹션
- 앱 이름(Display Name): 앱의 표시 이름
- 번들 식별자(Bundle Identifier): App Store Connect에 등록한 앱 ID
서명 및 기능(Signing & Capabilities) 탭
- 서명 자동 관리(Automatically manage signing): Xcode가 앱 서명과 프로비저닝을 자동으로 관리할지 설정. 기본적으로 활성화되어 있으며 대부분의 앱에 적합하다.
- 팀(Team): Apple 개발자 계정과 연결된 팀을 선택. 필요시 "계정 추가..."를 통해 계정을 연결하고 설정을 업데이트한다.
빌드 설정(Build Settings) 탭의 배포(Deployment) 섹션
- iOS 배포 대상(iOS Deployment Target): 앱이 지원하는 최소 iOS 버전을 설정. Flutter는 iOS 12 이상을 지원하며, 최신 API를 사용하는 경우 적절히 업데이트한다.
앱스토어에 앱 빌드 올리기
빌드 파일을 올리기 전에, iOS 앱이 애플의 가이드라인을 다시 한 번 더 확인하자. 심사 기준이 엄격하기 때문에 미리 검토해야 보다 빠르게 배포할 수 있다.
빌드 및 아카이브
이상 없다면 Xcode를 사용하여 생성한 앱 빌드를 앱스토어에 업로드했다.
1. Xcode에서 Product > Archive를 클릭한다. 이 작업은 다소 시간이 걸릴 수 있다.
2. 빌드가 완료되면 Distribute App을 클릭한다.
3. App Store Connect를 선택하고 Next를 클릭한다.
4. 잠시 기다리면 업로드가 완료됐다는 메시지가 출력된다.
배포된 (출시전) 앱은 앱스토어 컨넥트에서 볼 수 있었다. 앱스토어 컨넥트에서 Test Flight로 이동해서 등록된 빌드를 확인한다. 이때, 빌드 버전이 업로드한 앱의 버전과 맞는지 확인한다.
※ 그리고 이렇게 앱스토어 컨넥트에 등록된 빌드는 다시 지울 수 있다(이를 빌드 무효화라고 한다).
만약 빌드의 앱 버전이 플러터에서 설정한 버전과 다르다면, Xcode에서 직접 수정한다.
드디어 빌드를 앱스토어에 등록했다. 안타깝지만, 아직 할 일이 많이 남았다. 심사를 요청하려면 앱 설명, 스크린샷 등 앱과 관련된 정보들을 입력해야 한다. 자세한 내용은 다음 글에 정리했다.