Keystore파일을 이용하여 커맨드창에서 APK 서명하기

Keystore파일을 이용하여 커맨드창에서 APK 서명하기


난독화를 한 후 만들어진 apk가 서명되지 않은 상태여서, 빠르고 쉽게 커맨드를 이용하여 apk 서명하는 방법을 찾아서 포스팅합니다.


먼저 apk에 서명이 되어있는지 여부를 확인합니다. APK가 있는 폴더로 이동하여 커맨드 창을 열고 아래 명령어를 입력.


jarsigner -verify <어플이름>.apk



서명이 안되어있으면 아래와 같은 결과가 표시됩니다.


no manifest.

jar is unsigned. <signatures missing or not parsable>


서명이 된 상태라면


jar verified.


로 표시됩니다.



서명이 되어있지 않은 것을 확인했다면, 이제 서명을 할 차례입니다.


명령어는 


jarsigner -verbose -keystore <keystore파일> <서명되지 않은 apk파일> <서명되어 나올 파일 이름.apk>


ex> jarsigner -verbose -keystore gyu.keystore unsigned_gyu.apk signed_gyu.apk


이대로 signed_gyu.apk를 업로드 하려고하면 "Zip 정렬되지 않은 APK를 업로드했습니다." 라는 경고 문구가 뜨고 업로드가 되지 않습니다.  서명한 apk를 재정렬해야만 합니다.


Android SDK가 깔린 폴더로 이동합니다. Android SDK\tools 폴더에서 커맨드창을 열고,


zipalign -v 4 <정렬안된 서명된 apk> <정렬되어나올 완벽한 apk>


ex>zipalign -v 4 signed_gyu.apk gyu.apk



이제  gyu.apk를 플레이 스토어에 업로드 하면 끝~!