Happy path는 현실에 없다 ㅋ
애플의 앱스토어에 출시하기 위한 준비의 준비인 apple developer program에 가입완료~
이제 진짜 본격적으로 처음 앱을 출시할 시간이 되었다.
앱스토어 출시를 위해 내가 참고한 영상은 더코딩파파의 영상이다. 설명이 깔끔하다. 그럼에도 불구하고 나는 수많은 에러들을 만났다. 하지만 모든 에러에는 원인이 있고 그 원인을 찾아 고치면 해결되는법ㅋ 다행히 모든 에러들을 해결하고 앱스토어 앱 출시에 성공했다.
이 글은, 앱스토어 출시를 하면서 메모해두었던 것들과 픽스했던 에러들의 회고글이다. 자세한 앱스토어 출시 방법은 더코딩파파의 영상을 참고하자! (참고로 더코딩파파 지인 아니다 ㅎㅎㅎ 유튜브영상 중에 앱스토어 출시 설명이 제일 잘되어있는 것 같다)
앱의 고유한 주민등록번호같은 고유번호다. 보통 홈페이지 주소를 거꾸로 적어서 사용 많이 한다. (예: com.samplesite.version) 이 세상에 있는 모든 앱들은 고유한 bundle identifier가 있고 똑같은 것이 있으면 안된다.
삭제해도 된다고 한다. (참고: https://stackoverflow.com/questions/35320432/the-app-icon-set-appicon-has-an-unassigned-child)
Bundle version: 항상 업데이트할때마다 기존 숫자보다 큰 숫자여야 업데이트가 가능하다.
Bundle version string (short): 사용자가 보는 버전이다.
처음에 flutter build ipa 로 빌드를 하는데 에러가 떴다.
No profiles for 'com.xxx.xxxx' were found: Xcode couldn't find any iOS App Development Provisioning profiles matching 'com.xxx.xxxx'
프로파일? 무슨 말이지? 이리 저리 서치해보니 provisioning profiles 라는 것을 만들었어야 했다. apple developer에 들어가보니, 나는 실제로 provisioning profiles 가 없더라..?
Xoode 에서도 Runner를 확인해보니 이렇게 에러가 나고 있었다. (빨간 네모 박스)
provisioning profiles 란?
디바이스에서 앱을 실행하기 위해서는 내 디바이스가 개발자를 신뢰할 수 있는지를 알아야 앱 설치를 허락할지 말지를 결정할 수 있는데, 이 결정을 도와주는 파일이 프로비저닝 프로파일이다.
(참고: https://sujinnaljin.medium.com/ios-프로비저닝-프로파일이란-ipa에서-까보기-ccf629e4c68a)
새로 만들어야 하나보다. 그래서 만들어봤다. https://developer.apple.com/account/resources/profiles 에서 Generate a profile을 해서 차례대로 스텝을 밟아가고 있었다.
근데 또 중간에 막혔다. Certificate을 발급하라는 것이었다.
설명을 읽어보니, CSR(Certificate Signing Request)을 내 맥북에서 만들 수 있다고 한다. 블로그 글을 참고하면서 하나 만들었다. (참고: https://calmone.tistory.com/entry/CSR-Certificate-Signing-Request파일-생성하기)
CSR(Certificate Signing Request)
인증서 발급을 위해 필요한 정보를 담고있는 인증서 신청 형식 데이터
Certificate을 다운받고, 다시 처음부터 Provisioning Profile을 만들었다. 쭉 진행하다 보면 내 Device의 UDID를 입력하라고 나온다. (참고: https://medium.com/@jang.wangsu/ios-iphone의-udid-를-확인하는-방법-a82ac8df93ea) 모두 다 입력하고 나니 프로필 등록 성공! Device 목록에 내 iPhone이 하나 등록이 되었다.
Runner에서도 아까의 에러가 사라진 걸 확인할 수 있다.
다시 flutter build ipa 명령어를 입력하니...빌드 성공!!!
xcode 에서 Validation 체크를 했는데 의외의 에러를 만났다.
1. 앱스토어 아이콘은 투명도가 있으면 안된다는 것
2. iOS sdk 버전이 안맞다는 것.
하나씩 처리해보자.
1→ 강의영상에서 아이콘 배경을 투명하게 만들면 좋겠다고 해서 그렇게 했는데, 그게 문제가 된걸까? 영상 내용이 잘못된건지.. 일단 아이콘 이미지를 피그마에서 배경색을 넣고 다시 만들어서 아래 명령어로 다시 자동 생성해줬다.
flutter pub run flutter_launcher_icons
2→ 이건 검색해보니까 xcode의 버전을 업데이트하라고 했다. 내 xcode의 버전이 낮았던 것이 문제였다.
How to update Xcode on Mac?
You can update your Xcode for Mac with these processes:
- If you installed your Xcode from the App Store, then you will get automatic updates. Also, you can manually update the Xcode from the ‘Update’ tab.
- If you installed it from the developers’ site, you must manually download the updates. There is no automatic update option available for this case.
You need to check developer.apple.com to know about the new version releases.
https://www.browserstack.com/guide/download-xcode-on-mac 글의 이 부분을 참고했다.
헐…. 나의 Mac OS의 버전이 낮아서 xcode 버전도 낮았던 거였다.
Mac OS부터 업데이트를 했다. 2시간정도 걸렸다. 업데이트 하는동안 빈둥거림 ㅋ
2시간에 걸친 다양한 업데이트들이 끝나고 드디어 다시 빌드해보기.
flutter build ipa
그리고 다시 validation 체크를 해보기.
꺅! 성공했다!
이제 [ Distribue app ] 버튼을 누른다.
업로드 성공! >_< 크 짜릿하다
App store connect 에서 확인해보자.
https://appstoreconnect.apple.com/apps
꺄아!
감동이야.
이렇게 첫번째 앱 제출 준비를 끝마쳤다.
짜릿한 앱출시 후기 끝!