본문 바로가기
안드로이드(kotlin)

안드로이드 앱 파일 만들기(APK)

by 기계공학 주인장 2023. 4. 26.
반응형

Android에서는 인증서를 사용해 디지털 방식으로 서명된 APK만 기기에 설치하거나 업데이트할 수 있습니다.

 

Android App Bundle을 사용하여 출시하는 경우 업로드 키로 App Bundle에 서명한 후 Play Console에 업로드해야 합니다. 

 

안드로이드와 구글 플레이스토어에선 다음과 같은 과정으로 키를 사용합니다.

 

안드로이드 스튜디오에선 Upload Key라는 것을 생성하여 앱 파일을 만들어야 합니다


업로드 키 생성

앱을 만들 때 업로드 키가 아직 없다면 다음과 같이 Android 스튜디오를 사용하여 생성할 수 있습니다.

  1. 메뉴 바에서 Build > Generate Signed Bundle/APK를 클릭합니다.
  2. Generate Signed Bundle or APK 대화상자에서 Android App Bundle 또는APK를 선택하고 Next를 클릭합니다.
  3. Key store path 필드 아래에서 Create new를 클릭합니다.
  4. 그림에 표시된 것처럼 New Key Store 창에서 다음과 같은 키 저장소 및 키의 정보를 입력합니다.

위 그림에서 각 항목의 설명은 다음과 같습니다.

  1. 키 저장소
    • Key store path: 키 저장소를 생성할 위치를 선택합니다. 또한 파일 이름은 위치 경로의 끝에 .jks 확장자와 함께 추가해야 합니다.
    • Password: 키 저장소에 사용할 보안 비밀번호를 생성하고 확인합니다.
    • Alias: 키를 식별할 수 있는 이름을 입력합니다.
    • Password: 키에 사용할 보안 비밀번호를 생성하고 확인합니다. 이 비밀번호는 키 저장소 비밀번호와 동일해야 합니다. 자세한 내용은 알려진 문제를 참고하세요.
    • Validity (years): 키가 유효하게 유지되는 기간(년)을 설정합니다. 키가 최소 25년 동안 유효하게 유지되어야 앱 수명 동안 같은 키로 앱 업데이트에 서명할 수 있습니다.
    • Certificate: 인증서에 사용할 본인 관련 정보를 입력합니다. 이 정보는 앱에 표시되지 않지만 APK의 일부로 인증서에 포함됩니다.
  2. Certificate 부분은 전부 작성할 필요 없지만 가능한한 작성해준다.
  3. 작성이 모두 끝났으면 OK 버튼을 누른다

업로드 키로 앱에 서명하기

방금 생성한 업로드 키를 사용해서 앱에 서명하고 APK 파일을 만들어본다.

 

  1. Build > Generate Signed Bundle/APK를 클릭합니다.
  2. Android App Bundle을 클릭합니다.
  3. Generate Signed Bundle or APK 대화상자에서 Android App Bundle 또는 APK를 선택하고 Next를 클릭합니다.
  4. 모듈을 선택합니다.
  5. 생성한 업로드키를 Key store path에 등록합니다.
  6. Key store password: 키 저장소에 등록할 비밀번호
  7. Key alias: 키의 이름
  8. Key password: 키의 비밀번호
  9. Remember passwords는 가능한한 사용하지 않는 것이 좋습니다.
  10. Export encrypted key for enrolling published apps in Google Play App Signing: 구글 앱 스토어에 등록할 때 사용한다. 체크할 경우 서명 키를 암호화된 *.pepk 파일로 저장하게됩니다.

 

그리고 Next를 클릭하면 다음과 같은 화면이 나옵니다.

build type을 선택하고(일반적으로 배포할 것이기 때문에 release가 대부분 정답)

Flavor를 설정했다면 flavor도 같이 표시됩니다.

 

finish 버튼을 누르면 apk 파일을 생성할 수 있습니다.

 

생성된 파일은 

 

현재 프로젝트/app/release 에서 확인할 수 있습니다.

반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글