Android APK 파일을 수동으로 서명할 때, JDK7 환경에서 수행하면
Lollipop 이전 버전에서는 APK를 설치할 때 Certificate 관련 에러가 발생한다.(JDK7을 베이스로 하는 Lollipop 이상에서는 잘된다.)
이것은 JDK6와 JDK7의 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]
댓글