안드로이드 스튜디오에서 업데이트 APK 추출.
앱 출시 후에도 버그 수정. 고도화 작업. 코드 리팩토링 등을 하게 됩니다. 그리고 테스트를 진행해 보고 이상이 없을 때 새로운 버전으로 app 을 플레이 스토어에 올리게 되죠. 이번에 거래를 하고 있는 회사에서 업데이트 요청이 있었는데, 업데이트 된 apk 를 추출하는 경험이 없던터라 구글형님께 도움을 구하게 되었죠. 관련 글들을 찾아 볼 수 있었지만, 그래도 이해가 가지 않는 부분들이 있어. 직접 기록해 두고자 포스팅 하게 되었습니다.
업데이트 된 apk 를 뽑는 방법은 처음 apk 를 만들때와 방법은 같습니다. 단지, 처음 출시할 때 apk 를 만드는 과정에서는 key store 를 생성하는 과정이 포함되어 있었다면 업데이트 apk 는 생성해 놨던 key store 를 이용해
서 만든다는 것 이 다를 뿐이죠.
아주 단순합니다. 안드로이드 스튜디오에서 프로젝트를 열게 되면 build.gradle (Module: app) 이라는 곳에 versionCode 와 versionName 가 있습니다. 구글 검색을 했을 때 매니페스트에 이 정보가 있다는 글들이 있는데 아무래도 android studio 가 아닌 eclipse 기준인듯 합니다.
versionName : app 이 플레이스토어에 업데이트가 되었을 때 사용자들이 보게 될 버전 정보 입니다. 1.1 로 넣을 경우 사용자 들은 1.1 버전이라는 것을 보게 되는 것이죠.
versionCode : 개발자가 내부적으로 관리할 코드번호 입니다. 업데이트를 위해 코드 수정을 모두 마친 후 이 versionCode 를 올려줘야 합니다. 스크린 샷의 프로젝트의 업데이트 진행을 위해서는 1 이상의 정수가 들어가야 하는거죠. 2 를 적어줬습니다. 플레이 스토어는 versionCode 를 감지하는 듯 합니다. 전에 올렸던 apk 의 versionCode 가 1 인데, 같거나 그 이상의 정수가 아닐경우 업데이트가 되지 않습니다.
바로 요런 창을 띄웁니다.
프로덕션으로 새 APK 업로드. 업로드 실패.
이 창의 내용을 잘 읽어 보면.
디버그가 가능한 APK 를 업로드 했습니다. 보안상의 이유로 Google Play 에 게시하기 전에 디버그를 사용 중지해야 합니다. - 이 부분은 릴리즈 타입의 apk 가 아닐 때 를 뜻합니다.
이미 버전 코드가 1인 APK 가 있으므로 다른 버전 코드를 사용해야 합니다. - 바로 요 부분이 versionCode 를 올려 달라 는 뜻이죠.
릴리즈 버전의 apk 를 뽑았고, versionCode 또한 올렸으나 이러한 오류 창이 뜬다면, key store 파일 (확장자 jks 파일) 이 손상 되었을 수 있습니다. 따로 백업해 둔 파일이 있다면 그 파일을 이용해서 다시 apk 를 생성하거나, 만약 백업해 둔게 없다면, 사실상 업데이트는 불가능하다고 볼 수 있습니다.
그만큼 처음 apk 를 만들면서 생성해 둔 key store 파일은 상당히 중요하기 때문에 백업을 꼭 해두시기 바랍니다.
자 이제 본격적으로 apk 를 만들어 보겠습니다. 처음 출시하기 위해 apk 를 생성할 때와 마찬가지로 Build - Generate Signed APK... 메뉴를 찾아 들어갑니다.
위 스크린 샷은 Mac 이지만 메뉴 이름은 동일할 것입니다.
생성할 때와 크게 다르지 않습니다. 이 곳에서는 마땅히 설정할 것이 없기 때문에 가볍게 Next 를 눌러줍시다.
여기서 부터 처음 apk 를 만드느냐, 업데이트 apk 를 만드느냐가 나뉘게 됩니다. 처음 생성할 때는 Create new... 를 선택해서 key store 생성하는 과정을 진행하게 되지만, 업데이트 apk 를 추출하기 위해서는 Choose existing... 으로 생성해 놓은 key store (확장자 .jks) 를 이용하게 됩니다.
처음 앱 출시를 위해 생성했던 key store 파일을 찾아서 선택해 줍니다. 여러 app 을 관리하시는 분이라면 업데이트 apk 와 관련이 있는 key store 파일을 선택해 줘야 하겠죠. 저 같은 경우에는 프로젝트 별로 코드와 이 jks 를 폴더화 해서 관리하고 있습니다. 저장한 경로를 알고 있어야 하는 이유는 이 때문인거죠.
key store 파일을 가져왔다면 생성할 때 입력했던 비밀번호를 입력하면 됩니다. 비밀번호와 별칭을 생성할 때 지정했던 것들로 잘 입력해 주셨다면 Next 를 눌러줍시다.
이 때 Enter Master Password 라는 창이 뜰 수 있습니다. 이 창은 key store 비밀번호와 관련 없는 팝업 창 입니다. android studio 의 사용자 비밀번호를 입력하라는 것입니다. 한마디로 권한을 묻는 창입니다. 기억이 나지 않는다면 리셋 비밀번호를 해줘도 상관 없습니다.
이제 나머지는 생성할 때와 같습니다. APK Destination Folder 은 APK 를 저장할 경로를 뜻합니다. 어디에 업데이트 apk 를 저장할 지 설정하는 것이죠. ... 를 선택해서 저장하고 싶은 경로를 선택해 주면 됩니다. Build Type 은 release 와 debug 를 선택할 수 있습니다. 플레이 스토어에 올리기 위해서는 release 를 선택하면 됩니다. 모든 설정이 끝났다면 Finish 를 눌러줍시다.
설정해 놓은 경로로 들어가 보면 app-release.apk 가 만들어져 있는 것을 확인할 수 있습니다. apk 를 만드는 과정에서는 apk 이름을 설정하는 부분이 따로 없습니다. 제 경우에는 생성한 apk 파일을 찾아 파일명을 바꿔줬습니다.
기존에 app-release.apk 가 있다면 그 파일을 덮어 쓰는 경우가 있기 때문에 이 역시 염두해 두고 관리하는 것을 추천합니다.
댓글 없음:
댓글 쓰기