본문 바로가기
TIL/Android

JDK7 환경에서 Android APK 수동 서명

by DandyU 2014. 12. 14.

Android APK 파일을 수동으로 서명할 때, JDK7 환경에서 수행하면

Lollipop 이전 버전에서는 APK를 설치할 때 Certificate 관련 에러가 발생한다.(JDK7을 베이스로 하는 Lollipop 이상에서는 잘된다.)

 

이것은 JDK6JDK7의 Digest 알고리즘의 차이로 발생하는 문제이다.

참고로, JDK6는 SHA1withDSA, JDK7은 SHA-256을 사용한다.

 

해결 방법은 서명할 때 아래의 옵션을 추가하자.

"-sigalg MD5withRSA -digestalg SHA1"

 

ex)

$ jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [release_key_location]/release-key.store 
-store.pass [password] -keypass [password] [yourApplication.apk] [alias_name]

댓글