플러터 iOS 앱 배포 가이드

소요 시간: 10분

Flutter로 개발한 앱을 앱스토어에 배포했다. 처음 해보는 일이라 조금 막막했지만, 단계별로 차근차근 진행하다 보니 크게 어렵지 않았다.

우선 사용자 계정을 Xcode에 연결해야 한다. 앱을 배포할 때 에러가 발생했었는데 계정이 연결하지 않아 발생한 오류였다.

아직 Xcode에 계정을 연결하지 못 했다면, CSR 파일부터 생성하자. 그 다음 App ID를 생성하고 Device를 등록한 다음 Provisioning Profile까지 생성해야 iOS 앱을 앱 스토어에 배포할 수 있다.

※ 플러터를 오랫동안 업그레이드 하지 않은 경우, 배포 시 에러가 발생할 수 있다. 빌드를 생성하기 전에 플러터를 업그레이드한다. 단, 버전 차이가 큰 경우 실행되지 않을 수도 있으니 플러터를 업그레이드 한 후 새 프로젝트에서 다시 시작하는 편이 좋다.


앱 레코드 생성하기

Xcode에 내 개발자 계정이 연결한 다음, 앱 스토어 컨넥트에서 어플리케이션 레코드를 생성했다.

어플리케이션 레코드는 애플리케이션에 대한 정보를 저장하고 관리하는 데이터 기록을 의미한다. 예를 들면 앱의 이름, 앱의 새로운 버전 번호, 앱의 가격 등이 여기에 해당된다.

다음 순서대로 앱 스토어 컨넥트에 앱을 등록하면 된다.

1. 먼저 브라우저에서 App Store Connect를 연다.

2. App Store Connect 랜딩 페이지에서 '나의 앱'을 클릭한다.

앱 스토어 컨넥트 페이지입니다. 앱 아이콘이 빨간색 박스로 강조되어 있습니다.

3. '내 앱' 페이지 왼쪽 상단 모서리에 있는 + 버튼을 눌러 '새 앱'을 선택한다.

앱 스토어 컨넥트의 앱 페이지입니다. 왼쪽 상단에 + 버튼을 클릭하면 나오는 팝업 창에 신규 앱 항목이 빨간색 박스로 강조되어 있습니다.

4. 표시되는 양식에 앱 세부 정보를 입력한다.

이때 플랫폼 섹션에서 iOS가 선택되어 있는지 확인한다. Flutter는 현재 tvOS를 지원하지 않으므로 해당 확인란은 선택하지 않은 상태로 둔다.

다 입력했다면 생성 버튼을 클릭한다.

4. 앱이 생성되면 애플리케이션 세부 정보 페이지로 이동한다. 사이드바에서 '앱 정보'를 선택하고, '일반 정보' 섹션에서 이전에 등록한 번들 ID를 선택한다.


Xcode 프로젝트 설정하기

그 다음 배포하기 전에, Xcode 워크스페이스에서 앱 설정을 제대로 맞췄는지 검토했다.

1. Flutter 프로젝트 디렉토리의 터미널를 실행해 Xcode 워크스페이스를 연다.

$ open ios/Runner.xcworkspace

폴더에서 해당 파일을 직접 찾아 더블클릭하거나 비쥬얼 스튜디오 코드를 사용하는 경우 ios 폴더를 마우스 오른쪽 버튼을 클릭한 다음 open in Xcode를 클릭해도 된다.

2. Xcode 탐색기에서 Runner target을 선택한다.

중요한 설정 확인하기

아래 속성들에 내 앱의 정보들이 정확하게 입력되어 있는지 확인한다.

일반(General) 탭의 ID(Identity) 섹션

서명 및 기능(Signing & Capabilities) 탭

빌드 설정(Build Settings) 탭의 배포(Deployment) 섹션


앱스토어에 앱 빌드 올리기

빌드 파일을 올리기 전에, iOS 앱이 애플의 가이드라인을 다시 한 번 더 확인하자. 심사 기준이 엄격하기 때문에 미리 검토해야 보다 빠르게 배포할 수 있다.

빌드 및 아카이브

이상 없다면 Xcode를 사용하여 생성한 앱 빌드를 앱스토어에 업로드했다.

1. Xcode에서 Product > Archive를 클릭한다. 이 작업은 다소 시간이 걸릴 수 있다.

2. 빌드가 완료되면 Distribute App을 클릭한다.

3. App Store Connect를 선택하고 Next를 클릭한다.

4. 잠시 기다리면 업로드가 완료됐다는 메시지가 출력된다.

배포된 (출시전) 앱은 앱스토어 컨넥트에서 볼 수 있었다. 앱스토어 컨넥트에서 Test Flight로 이동해서 등록된 빌드를 확인한다. 이때, 빌드 버전이 업로드한 앱의 버전과 맞는지 확인한다.

※ 그리고 이렇게 앱스토어 컨넥트에 등록된 빌드는 다시 지울 수 있다(이를 빌드 무효화라고 한다).

만약 빌드의 앱 버전이 플러터에서 설정한 버전과 다르다면, Xcode에서 직접 수정한다.

드디어 빌드를 앱스토어에 등록했다. 안타깝지만, 아직 할 일이 많이 남았다. 심사를 요청하려면 앱 설명, 스크린샷 등 앱과 관련된 정보들을 입력해야 한다. 자세한 내용은 다음 글에 정리했다.

플러터 리스트