앱 출시는 어떤 과정으로 진행되는 것일까? (Android, iOS)
안녕하세요. 오늘은 제가 개발한 앱들을 중심으로 해서 실제 앱 출시가 어떤 과정으로 이뤄지는지를 간략히 소개해드릴까 합니다. 이 게시글은 전공자나 현업자보다는 취미로 앱을 출시하려 하시는 분들이나 단순히 궁금하신 분들을 초점으로 하여 작성된 게시글이고, 영상 자료와 달리 여러 부연 설명들이 들어갑니다. 혹시 틀린 부분이 있다면 댓글로 알려주시면 반영하겠습니다.
사실 어플을 출시하는 데에는 여러 다른 과정들이 필요합니다만, 이 게시글은 '출시' 과정을 초점으로 하여 설명드리겠습니다. 그리고 저는 Flutter, React Native, Unity를 사용해서 모바일 앱을 개발하며, 네이티브 영역은 따로 조금씩 건드리는 방식으로 개발합니다. 이 점도 참고해주시면 감사하겠습니다.
설명을 영상으로 보고 싶으신 분들은 아래 동영상 혹은 링크를 눌러주세요. 저의 개발자 유튜브 채널의 동영상입니다.
https://youtu.be/L5sPALeWQro
0. 배경지식
Android의 경우엔 공식적으로 Java 또는 Kotlin이라는 언어를, iOS의 경우엔 공식적으로 Objective-C 또는 Swift라는 언어를 사용해서 개발하게 됩니다. 하지만 한 명의 인디 개발자가 각각의 OS에 각각 다른 언어를 써서 개발한다는 건 쉬운 일이 아닙니다. 또한 Android 기기와 iOS 기기의 특성이 약간씩 다르기 때문에 그에 맞춰 코드를 짜줘야 합니다.
그런데 구글과 페이스북, Unity에서 코드를 한 번만 써서 Android와 iOS에 동시 적용 가능하도록 하는 개발 엔진을 만들었습니다. 각각 Flutter, React Native, Unity입니다. Flutter와 React Native는 크로스 플랫폼(두 가지 이상의 OS를 개발할 수 있는 플랫폼)의 양대산맥이며, 각각의 장단점을 비교하는 글이나 영상은 다른 곳에 많이 나와있으니 궁금하신 분들은 직접 찾아보시길 추천드립니다. Unity는 게임에 특화된 개발엔진이며, Android와 iOS 외에도 STEAM, PS4, Nintendo Switch 등에도 호환됩니다. 비슷한 게임 엔진으로 Unreal 엔진이 있는데, 저는 사용해본 적은 없지만, C++ 언어를 사용한다고 합니다. Flutter와 React Native와 마찬가지로 Unreal과 Unity를 비교한 영상이나 문서도 다른 곳에 많이 나와있으니 궁금하시다면 찾아볼 수 있습니다.
Flutter는 dart, React Native는 React.js(javascript의 한 종류), Unity는 C# 언어를 주로 이용합니다.
이 게시물을 Flutter를 기준으로 설명하였지만, 군데군데 부가적으로 React Native와 Native(정확한 설명은 아니지만, Android와 iOS를 각각 따로 개발하는 것. React Native와 혼동 주의)에서의 출시 방법도 다뤘습니다. Unity의 경우는 추후에 설명드리도록 하겠습니다만, 대략적인 과정은 아래와 동일합니다.
1. Android (apk 아닌 앱번들 기준)
0-1) React Native, Native의 경우 app/build.gradle에서 versionCode, versionName 변경
0-2) Flutter의 경우 pubspec.yaml에서 version, version code 변경 ('+' 기호로 구분되어 있음)2) 만들어진 .aab 파일을 개발자 웹 페이지로 업로드
3) 출시 노트(이전 버전 대비 변경 사항)을 적절히 입력 후 다음 단계 이동
4) 최종 검토 후 출시
2. iOS
0-1) React Native, Native의 경우 app/build.gradle에서 Version, Build Code 변경
0-2) Flutter의 경우 pubspec.yaml에서 Version, Build Code 변경 ('+' 기호로 구분되어 있음)1) Flutter의 경우 터미널에 flutter build ios 입력 (왜인진 모르겠지만 공식 문서에서 이 과정을 반드시 수행해야 한다고 함. React Native, Native는 이 과정 당연히 skip 가능)
3) 일련의 과정들을 잘 읽어보며 계속 진행
4) 변경 사항, 암호화 여부, 광고 포함 여부 등을 최종 검토한 뒤 출시
이렇게 모든 과정을 완료하면 심사 팀에서 길게는 하루 정도 심사를 거친 후 문제가 없을 때 통과를 시켜줍니다.
iOS의 경우에는 과정에 대한 설명이 Android에 비해 적은 편입니다. 출시 과정이 Android에 비해 약간 복잡하고, 개발자 등록을 하는 데 Android보다 훨씬 비싼 금액이 들어가고, Windows OS에서는 개발하기 힘들기 때문에 설명한 곳이 Android에 비하면 확실히 적습니다. 저는 '이왕 어플을 만드는 김에 iOS도 같이 만들어봐야지!'라는 안일한 생각으로 매년 13만 원 정도 비용을 내고 있습니다. 지금 학생 신분이라 돈이 없어서 알바를 해서 번 돈으로 메꾸고 있습니다. 언제까지 갱신하게 될지는 잘 모르겠네요.
그럼 오늘도 읽어주셔서 감사합니다.
댓글
댓글 쓰기