Ssul's Blog

React Native IOS배포하기 본문

dev/기능구현

React Native IOS배포하기

Ssul 2023. 2. 28. 23:18

👉Apple Developer 계정생성(법인계정)

(*개인 개발자 계정이 아닌, 회사계정을 받으면 복잡, 영세한 스타트업이기에...직접 진행 ㅜ 개인 개발자는 이과정은 스킵하셔도 됩니다)

1. 홈텍스가서 영문 사업자 등록증 발급받기

- 홈텍스 > 민원증명 > 사업자등록증명 > 영문증명 > 신청하기

 

2. DUNS(국제사업자번호)넘버 발급받기

- https://developer.apple.com/enroll/duns-lookup/#!/search 로 이동

- 영어로 회사정보 입력 후, 계속 클릭 > DUNS번호 요청 클릭

- 작성시 입력한 회사메일로 승인메일 옵니다.

3. EIN(Employer Identification)발급받기(W8-BEN)

- 앱스토어에서 매출이 발생하면 30%는 애플이, 70%는 개발사가 가져간다.

- 여기서, 미국 국세청(IRS)이 70%에 대해서 30%의 원천징수를 가져가... 70달러였던 매출이 49달러로 줄어든다

- 근데 미국과 한국사이에는 감사(?)하게 이중과세방지협약이 체결되어있다. 그래서 면제를 받을수 있는데, 이때 필요한 서류가 W8-BEN

- 근데 W8-BEN을 작성하기 위해서는 EIN(미국 사업자등록증번호 같은 느낌)을 발급받아야 함

- 이 EIN이 있으면, 애플이 원천세 30%를 안떼고, 매출을 입금해주는 형태.

- 본격적으로 EIN발급받기(*대행사들이 있는 이유가 있음 ㅜㅜ 무역하는 분들은 자주 해보신것 같고, 개발팀들은 생소할듯 합니다)

- #1. SS-4서류 작성합니다
https://www.irs.gov/ko/businesses/small-businesses-self-employed/how-to-apply-for-an-ein

이 링크에 SS-4 pdf파일 링크 있습니다.

- #2. 스카이프를 충전합니다(미국 국세청으로 국제전화를 할 예정입니다. 20-30분 소요)

- #3. SS-4를 온라인 팩스로 보낼수 있게 준비합니다.

- #4. 스카이프로 IRS에 전화를 합니다. 여기서부터 인터넷에 있는 정보와 다른 상황들이 등장할수 있습니다. 전화받은 담당자에 따라 다름

- #5. 외국인이 전화를 받습니다. 그러면 영어로 EIN를 발급받고 싶다고 이야기 합니다.

인터넷에서 찾아봤을때는 팩스보낸다고 하면 되었는데, 제 전화를 받은 상담원은 본인이 SS-4양식을 저와 통화하며 하나하나 작성하기 시작했습니다. 한 10분정도 짧은 영어실력으로 소화하다, 통역을 사용할것이냐 물어보았습니다(진작 물어보지...). 전 당연히 좋다 하였고, 한국계 미국인같은 분이 통화속에 등장해 3명이서 통화를 하였습니다. 통역사 덕분에 SS-4양식을 성공적으로 채울수 있었습니다.

- #6. 그리고 몇주후 EIN을 우편으로 받을수 있었습니다.

- #7. app store connect > 계약, 세금 및 금융거래 들어가서 어렵게 확보한 내용들 입력해서 제출하면 된다

어렵게 받은 미국 사업자번호(?)

 

4. App Store Connect, Developer 계정 생성 및 로그인

- https://developer.apple.com/

- https://appstoreconnect.apple.com/

 

 

👉 주요 인증계정 생성(법인계정)

https://developer.apple.com/ 로그인

 

1. CSR 생성

- CSR(Certificate Signing Request)는 인증서(Certificate) 발급을 요청하기 위한 파일

- spotlight > 키체인 접근 > 인증서지원 > 인증기관에서 인증서 요청 > 애플계정 입력, 디스크저장됨, 본인이 키 쌍정보 체크 > 저장/확인

- 위의 과정을 한번더(개발용, 배포용)

 

2. Certificates

- 애플이 해당 개발자를 신뢰한다고 증명해주는 인증서

- 개발용 인증서, 배포용 인증서 두개 생성해야 함

- Certificates > + > apple development선택(개발용) > 파일선택을 위에서 생성한 CSR파일한개 선택 > Download

- Certificates > + > IOS Distribution 선택(개발용) > 파일선택을 위에서 생성한 CSR파일한개 선택 > Download 반복

- 생성된 두개파일을 > 키체인 접근 > 로그인 > 붙여넣기

 

3. Identifiers

- 앱을 구별하는 식별자

- Identifiers > + > App IDs선택 > App선택 > App ID Prefix: Team ID, Description: 앱이름, Bundle ID: Bundle ID, 앱사용 서비스 체크 > Register

 

4. Profiles

- 앱을 업로드 하기 위한 인증서

- Certificate(누가), Identifier(어떤앱을), Device(어디에 스토어, 개발 등) 배포할 것인지 정보

- Profiles > + > IOS App Dev > 배포할 앱 선택 > 계정고르고 > continue > Generate > Download

- Profiles > + > App Store > 배포할 앱 선택 > ios Distribution > continue > Generate > Download

- 이렇게 하면 xCode에 연동 완료

 

 

👉 TestFlight 배포

1. xCode > TARGETS > General > Identity > Version, Build 입력

2. 최상단에 프로젝트 명 클릭 > Edit Scheme 클릭 > Release선택

3. App Icon 등록: 프로젝트명 > 프로젝트명 폴더 > images > 아이콘 삽입(인터넷에 아이콘 규격맞게 생성해주는 사이트 있음)

4. build 타겟 Any ios Device 선택

5. Product > Achive

6. 생성완료되면 Distribute App 클릭 > App Store Connect선택 > Upload > 다음, 다음

7. TestFlight에 앱확인

 

 

#주요 이슈 1. flipper error(버전이슈였음)

- xCode로 최종 빌드할때 항상 flipper머라머라 하면서 failed. 물론 시뮬레이터는 잘돌아감

- 구글링과 chatgpt로 pod파일 수정 > 실패

- xcode build settings에서 arm64설정 > 실패

- 한 3시간 시도 끝에... 자주 봤던 댓글... 버전 낮추니까 되었다..

- 그래서 버전 0.174.0에서 0.163.0으로 변경 > 해결

npm uninstall react-native-flipper
npm install react-native-flipper@0.163.0 --force
npx pod-install

 

 

#주요 이슈 2. api서버 주소 설정

- .env파일의 backend api를 로컬에서 서버주소로 연결

- xCode > 프로젝트폴더 > 프로젝트명 > Info클릭

- Information Property List 뷰에서 + 버튼을 클릭 > LSApplicationQueriesSchemes입력(자동으로 Queried URL Schemes변경) > Type은 array

- Item 0에 https입력, Item1 만들어서 api서버주소 입력

- chatgpt로 해결한 것인데... 정석이 아닌것 같다. 다른 것을 참고하자!

info

 

 

#주요 이슈 3. TestFlight업로드 후 수출규정 이슈

- 이건 아니오로 우선 넘어갔는데, 검색해보니 방법이 있어서 추후 적용하고 업데이트

이런 에러발생시 우선 아니오 클릭후 진행, 추후 인터넷 검색후 해결가능

👉 App Store 앱정보 등록(계속)

 

👉 App Store 앱 심사받기(아직 미진행)