iOS | AppStore에 배포하기(feat. 한 큐에 바로 성공!)
앱 배포 전 실기기 빌드로 테스트하기
⎮ 사전 준비
팀프로젝트를 하게 되면, 실기기 빌드를 위한 초기세팅을 해줘야 한다
"엥? 빌드를 할건데 초기 세팅을 한다고?" 할 수도 있다
혼자 프로젝트를 진행할 때는 Automatically manage signing이 켜져 있어 문제가 되지 않는다
이 체크 덕분에 Xcode가 내부적으로 알아서 Provisioning Profile을 만들어주고,
내부적으로 App ID, Signing Certificate, Device를 인지해서 실기기 빌드가 가능하도록 도와준다
* Provisionig Profile이란?
<링크 첨부 예정>
정리하자면, 프로젝트 파일은 동일하지만 팀원들의 기기는 각각 다르기 때문에 별도의 설정을 해줘야한다는 것이다
⎮ App ID 등록하기
https://developer.apple.com/account/resources/identifiers/list
로그인 - Apple
idmsa.apple.com
Description에는 그냥 앱 이름을 적어주었다
⎮ 팀원 Device 등록하기
https://developer.apple.com/account/resources/devices/list
로그인 - Apple
idmsa.apple.com
+ 버튼을 누르고,
여기에 작성될 UUID는 팀원들에게 받아서 작성하면 된다
UUID를 확인하는 방법은 다음과 같다
1. 맥북과 휴대폰 연결
2. Window - Devices and Simulators 클릭
3. 팝업 페이지에서 identifier 확인
다시 홈페이지로 넘어가서 UUID와 함께 필요한 정보를 입력해주면, 다음과 같이 팀원들의 Devices를 등록할 수 있다
⎮ Certificates 설정하기1
https://developer.apple.com/account/resources/certificates
로그인 - Apple
idmsa.apple.com
위 사이트에 들어가 로그인을 하면, Certificates를 설정할 수 있다
위 페이지에서 + 버튼을 누르고,
개발할 때 사용할 인증서 / 배포할 때 사용할 인증서 각각 해당하는 항목에 맞게 선택해준다
(하나씩 선택이 가능하고 나는 둘다 만들었다)
그러면 이렇게 파일을 선택하여 첨부하라고 나오는데, 이 파일을 준비해보자
⎮ CSR(Certificate Signing Request) 생성하기
먼저 cmd + spacebar를 눌러 검색창을 띄우고, 키체인 접근이라고 검색하자
그러면 다음과 같은 창이 나온다
상단 키체인 접근 - 인증서 지원 - 인증 기관에서 인증서 요청을 눌러준다
여기서 이메일은 본인의 애플 개발자 계정 이메일이다
디스크에 저장됨을 선택하고 계속을 누르면 다음과 같은 파일이 생성된다
바로 여기서 만들어진 파일을 위에 첨부하라던 파일에 넣어주면 된다
*배포와 개발 둘다 만드시는 분은 해당 파일이 헷갈리지 않도록 폴더링을 해서 파일을 관리하면 된다
⎮ Certificates 설정하기2
위에서 만든 파일을 첨부해주면, 다음과 같이 Provisioning Profile을 다운로드 받을 수 있다
그러면, 다음과 같은 파일이 생긴다
이 파일을 더블클릭하면, 키체인에 등록이 된다
이제 이 인증서를 우클릭하고 내보내기를 하면 된다
* 이때 모든 항목을 누르고 내보내기를 하면 p12가 활성화가 안되어 있다. 반드시 인증서 메뉴를 누르고 내보내기 하자
토글을 열고 두 파일 모두 선택한 뒤, 내보내기를 누르고 파일 포맷을 .p12로 하면 된다
이렇게 하면, 다음과 같은 파일이 나온다
이때 비밀번호를 입력하라고 나오는데, 향후 이 비밀번호를 팀원들에게 전달해야하니 잘 기억해두자
이로써 팀원과 공유할 공개키는 만들어졌다
⎮ 프로비저닝 프로파일(Provisioning Profile) 만들기
https://developer.apple.com/account/resources/profiles/list
로그인 - Apple
idmsa.apple.com
+ 버튼을 눌러준다
항목에 맞게 해당되는 메뉴에 체크하고 Continue를 눌러준다
그러면 App ID를 선택하고, Continue를 누르면 된다
마찬가지로 목적에 맞게 선택하고 Continue
여기서 Generate를 누르면 파일이 생성된다
다운로드를 누르면,
다음의 파일이 생성된다
이제 2개의 파일(p12, provision)을 팀원들에게 공유하면 된다
⎮ Xcode에 세팅하기
먼저 p12 파일은 더블클릭해서 설치해준다(비밀번호는 공유자에게 받아서 입력)
그리고 provision 파일을 세팅해준다
상단의 Automatically manage signing 체크 해제,
Provisioning Profile 클릭
import Porfile을 클릭해서 프로비저닝 파일 추가
상황에 따라 Debug, Release에 맞게 추가
이렇게 하면 실기기 빌드 후 테스트 준비는 사전 준비는 모두 마쳤다
앱 배포 전 TestFlight에 올려 테스트하기
⎮ 사전 준비
TestFlight에서 해야하는 사전 준비는 팀원 초대다
https://appstoreconnect.apple.com/access/users
https://appstoreconnect.apple.com/login?targetUrl=%2Faccess%2Fusers&authResult=FAILED
appstoreconnect.apple.com
먼저 사용자를 눌러 팀원들을 추가해준다
팀원들이 메일로 들어가 초대를 받으면, 앱 관리 또는 마케팅 등 각자의 역할이 추가된다
다시 AppstoreConnect로 돌아가서
https://appstoreconnect.apple.com/
https://appstoreconnect.apple.com/
appstoreconnect.apple.com
TestFlight에서 테스터 그룹을 추가해준다
이후 그룹에 테스터를 추가해주면
다음과 같은 초대 이메일을 받아 TestFlight를 통해 앱을 다운로드 받을 수 있다
AppStore 배포하기
⎮ 사전 준비물(친구비 내기)
AppStore에 앱을 배포하려면, 사전 준비물이 필요하다
애플 계정, 그리고 '친구비'이다
⎮ Apple Developer Program 등록하기
먼저, 애플에 친구비를 내보자
https://developer.apple.com/kr/
Apple Developer
Apple 플랫폼에서 개발할 절호의 기회입니다
developer.apple.com
위 사이트에서 계정을 누르고 로그인해서 들어가면,
다음과 같이 친구비를 낼 수 있다
129,000원을 내고 친구비를 내면 이제부터 판도라의 상자를 열어볼 수 있다
⎮ 프로젝트 세팅 바꾸기
혹시나, iPhone에서만 사용할 앱이라면, 프로젝트 세팅을 미리 바꿔주는 것이 좋다
처음에 프로젝트를 확인하면 아래와 같이 iPhone부터 Apple Vision까지 들어가 있는데,
이 상태로 아래의 Connect에 올리면 iPad 사진도 요구하게 된다
그냥 iPhone에서만 돌아가는 앱이라면 Project - General - Supported Destinations에서 iPhone만 남기고 다 지우자
그리고 나중에 심사를 넣을 때, 수출 관련 문서 누락이라는 경고가 뜰 수 있는데
이게 귀찮으면, 미리 info.plist에 아래의 세팅을 해주어도 된다
단, 암호화 알고리즘을 적용하지 않았을 경우에만 위 세팅을 해주면 된다
⎮ AppStore Connect : 앱 정보 등록하기
이제부터 조금 헷갈리는 과정들을 하나하나 정리하면서 해나가야 한다
우선 AppStore Connect로 들어가자
https://appstoreconnect.apple.com/apps
https://appstoreconnect.apple.com/login?targetUrl=%2Fapps&authResult=FAILED
appstoreconnect.apple.com
여기서 로그인을 하면 다음과 같은 화면이 나온다
여기서 앱을 누르고 들어가면,
이렇게 앱을 추가하라고 나온다
이름을 작성하고, 번들 ID는 연동되어 있다면 체크가 가능할텐데
연동이 되어 있지 않다면 직접 등록해줘야 한다
(나의 경우 신규 가입한 애플 아이디라서 설정하는데 조금 애를 먹었다)
SKU는 앱의 고유한 ID인데, 통상적으로 앱 번들 아이디의 2글자를 따서 사용한다고 한다(com.curating)
액세스는 전체 엑세스를 눌러주면 된다
이제부터 문서를 상세하게 잘 작성해주어야 한다
가장 상단에 들어가는 사진은 앱스토어에 올라가는 사진으로,
규격에 맞춰 넣어주면 된다
위에서 프로젝트 세팅을 잘 해주었다면, iPad 사진을 등록하지 않아도 된다
* 지원 URL 예시
이츠오케이 문의사항/버그제보 페이지
안녕하세요 이츠오케이팀입니다 문의사항이나 발견하신 버그가 있으시다면 이 페이지를 통해 문의해주시면 감사드리겠습니다!
docs.google.com
이렇게 작성을 하고 중간중간 저장을 눌러 문서가 날아가지 않도록 처리해준다
⎮ AppStore Connect : 앱이 수집하는 개인정보 작성하기
다음으로는 앱이 수집하는 개인정보를 작성해야 한다
* 개인정보 처리방침 예시
https://radial-fascinator-e2d.notion.site/21951cd1bb7c8062b80efd7650eb7778
개인정보 처리 방침 예시 | Notion
제1조 (목적)
radial-fascinator-e2d.notion.site
⎮ AppStore Connect : 가격 및 사용 가능 여부 설정
먼저, 국가 및 지역 사용 가능 여부를 선택해준다
이후 가격 설정을 눌러 가격을 설정해준다
* 무료 앱일 경우 0.0원 선택
(우리는 등록할 때 원화를 선택하고 0.0원으로 등록했다)
이후 다음과 같은 연령 설정 페이지에서 연령을 설정해주면 된다
⎮ Xcode Archive하고 제출하기
프로젝트 파일을 열어서 빌드하는 시뮬레이터를 Any iOS Device(arm64)로 바꿔준다
이후 Product - Archive를 누르면
다음과 같은 화면이 나온다
먼저 Validate App을 누르고, 완료가 되고나면
Distribute App을 누르면 된다
Distribute App까지 통과하면
다음과 같은 화면이 나오고, Distribute를 누르면 App Store Connect에 올라간다
이제 AppStore Connect로 가서, 빌드 추가를 누르면 해당 파일을 선택할 수 있다
여기서 빌드를 추가할 때, 앞서 말한 수출 관련 문서 누락이라는 경고가 뜰 수 있는데
상황에 맞게 선택하고 저장을 누르면 된다
(본인은 암호화 알고리즘을 적용하지 않은 앱이라서 마지막 항목을 선택했다)
모든 절차를 다 끝냈으면 저장을 누르고, 심사에 추가 버튼을 누르면 된다
* 심사 추가 버튼을 누를 때 미흡한 부분이 있으면 누락된 절차가 무엇인지 띄워주기 때문에 걱정없이 누르자
우리팀의 경우 19일에 제출해서, 바로 다음 날인 20일 15시 경 승인을 받았다