실전
iOS 배포
iOS 앱을 빌드하고 App Store Connect 출시를 준비합니다.
핵심 개념
iOS 배포 주요 항목
빌드와 서명
iOS 배포에는 macOS와 Xcode 환경이 필요합니다.
언제 쓰나: Bundle Identifier, signing, provisioning profile을 확인합니다.
Flutter에서: 앱 기능에 따라 capability 설정이 필요할 수 있습니다.
flutter build ipa --release
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter build ipa --release
Built build/ios/ipa/App.ipa')
],
)
],
),
)
실행 출력
$ flutter build ipa --release
Built build/ios/ipa/App.ipa
심사 준비
앱 설명, 스크린샷, 개인정보 항목, 테스트 계정을 준비합니다.
언제 쓰나: 로그인이 필요한 앱은 심사자가 사용할 수 있는 계정을 제공해야 합니다.
Flutter에서: 권한 요청 문구는 사용자와 심사자 모두에게 명확해야 합니다.
flutter build ipa --release
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter build ipa --release
Built build/ios/ipa/App.ipa')
],
)
],
),
)
실행 출력
$ flutter build ipa --release
Built build/ios/ipa/App.ipa
확장 개념
iOS 출시 준비
- iOS 배포에는 macOS, Xcode, Apple Developer 계정, signing 설정이 필요합니다.
- Bundle Identifier와 provisioning profile이 앱 설정과 일치해야 합니다.
- App Store Connect에는 스크린샷, 개인정보 항목, 심사 메모 등 메타데이터가 필요합니다.
코드
예제
flutter build ipa --release
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter build ipa --release
Built build/ios/ipa/App.ipa')
],
)
],
),
)
실행 출력
$ flutter build ipa --release
Built build/ios/ipa/App.ipa
다음 단계
실습 체크리스트
Bundle Identifier 확인서명 설정ipa 빌드심사용 계정 준비
- 출처세부 기준과 최신 변경 사항을 확인할 수 있습니다.
- Flutter API Reference클래스, 메서드, 생성자 세부 정의를 확인합니다.
- Flutter deployment플랫폼별 출시 문서의 출발점입니다.