expo 를 이용한 재배포

이철호·2023년 12월 8일
0
post-thumbnail

재배포 이유

현재 출시한 어플이 2년전에 apk 파일로 플레이스토어에 배포했고 SDK 버전 호환 및 최신기기 지원을 하지 않았다.
그 효과로 이 어플리케이션은 플레이스토어에 검색해도 나오지 않았다. 이 외 다양한 이유로 aab 파일로 빌드 후 재출시 하기로 했다.

앱 서명 오류

  • 기존 어플을 빌드할때 사용한 인증서(jks,pem)로 빌드를 해야 플레이스토어에 재배포가 가능하기 때문에 위와 같은 오류가 발생했다.

재배포 하기 위한 설정


현재 어플은 외주업체에서 만든 어플리케이션이기 때문에 코드 및 인증서 keystore(jks,pem)가 인수인계가 없었다.
그렇다면 플레이스토어 콘솔에서 설정에 앱 서명에 들어가서 기존 어플을 만들때 사용했던 키가 아닌,
React-Native로 다시 만든 어플 빌드할때 사용할 키의 인증서(pem)를 플레이스토어에 등록해야 한다.

플레이스토어에서는 키 재설정을 간편하게 지원하기 때문에 요청을 보내놓는다. (통상 2일정도 걸린다)

설정 -> 앱 서명 -> 업로드 키 재설정 요청


앱서명 키 재설정


요청 버튼을 클릭하면 해당 화면이 나오는데 결론적으로 인증서(pem) 파일을 보내야 한다
인증서를 만드는 방법은 여러가지 있다.

  • java bin에 있는 keystore 명령어를 통해서 jks 키를 만드는 방법.
  • expo 명령어를 통해 서버에서 자동으로 jks를 만드는 방법.

이 외 다양한 방법들로 jks를 만들고 3번 해당 명령어를 통해 jks 를 사용해서 인증서 pem 파일을 업로드 후 요청을 보낸다.

expo에서 만들었던 jks를 다운받고 3번에 있는 명령어를 입력하게 되면 pem 파일이 나오게 된다.

expo 인증서 설정하기

인증서 새로 만들기

eas credentials -p android -> 입력
? Would you like to automatically create an EAS project for @eanswer/golfspot2? » (Y/n)

  • Y를 입력하면 프로젝트에 인증서가 새로 생성된다.

로컬 인증서 사용

eas credentials:manager -> 입력

  • 입력하게 되면 프로젝트 최상단에 credentials.json 이 존재해야 한다
{
  "android": {
    "keystore": {
      "keystorePath": "경로", // 절대 경로 및 상대경로 둘다 지원, 확장자(jks)
      "keystorePassword": "키스토어 비밀번호",
      "keyAlias": "키스토어 별칭",
      "keyPassword": "키 비밀번호"
    }
  }
}

위와 같이 설정을 해주고

expo credentials:manager

Accessing credentials for eanswer in project golfspot2
? Select platform » - Use arrow-keys. Return to submit.
-> ios
-> android

android 선택

No credentials available for @eanswer/golfspot2 experience.
? What do you want to do? » - Use arrow-keys. Return to submit.
-> Update upload Keystore
-> Remove keystore
-> Update FCM Api Key
-> Download Keystore from the Expo servers

Update upload Keystore 선택 

? Would you like to upload a Keystore or have us generate one for you?
If you don't know what this means, let us generate it! :) » - Use arrow-keys. Return to submit.
-> Generate new keystore
-> I want to upload my own file

I want to upload my own file 선택해서 현재 내 디렉토리에 있는 키를 업로드 한다.
  • keystorePassword, keyAlias, keyPassword,를 입력해주고 나면 성공적으로 등록이 완료된다.

eas credentials -p android

? Which build profile do you want to configure? » - Use arrow-keys. Return to submit.
-> development
-> preview
-> production

production 선택

? What do you want to do? » - Use arrow-keys. Return to submit.
-> Keystore: Manage everything needed to build your project
-> Push Notifications: Manage your FCM API Key
-> Google Service Account: Manage your Service Account Key
-> credentials.json: Upload/Download credentials between EAS servers and your local json
-> Go back

  • 맞는 선택지를 고르고이전에 올렸던 인증서를 default로 선택하고 빌드한다.

재 업로드 오류

  • aab 파일을 업로드하게 되면 기존 어플의 설정과 달라야 하는 버전같은 경우는 친절히 알려주기 때문에 각각의 맞는 설정을 app.json 파일에서 수정한다.

배포 완료

  • 이렇게 정상적으로 제출이 완료되면 검토를 하게 되는데어플마다 검토 되는 시간이 다르다고 한다.
    보통 2일 정도 걸리고 빠르면 1시간도 채 안걸린다고 한다.
profile
프론트엔드 개발자로 한단계씩!

0개의 댓글

관련 채용 정보