ANDROID] APK Signing

노션으로 옮김·2020년 4월 10일
1

Study

목록 보기
15/33
post-thumbnail

Signing

컴파일해서 생성된 apk를 설치하려고 하면 에러가 발생할 것이다.
서명이 안되있기 때문이다.

정의

개발자에 의해 개발이 완료된 apk라는 인증을 남기는 것이다.

이전에는 개발자가 만든 앱 서명키를 가지고 구글 스토어에 업로드하는 방식이었지만, 현재는 개발자가 만든 키는 스토어에 업로드시에만 사용하고 이후에는 스토어에서 제공해주는 앱 서명키로 signing을 하여 업데이트할 수 있다고 한다.

https://jw910911.tistory.com/53

key, keystore

key는 인증에 사용되는 서명을 말하고, keystorekey가 저장되어있는 파일을 말한다.

서명은 여러가지 방식으로 만들 수 있다.
그리고 각각은 확장자가 다를 수 있다.

예를 들어 안드로이드 스튜디오에서 만든 서명은 .jks지만, keytool로 만든 서명은 .keystore를 갖게 된다.
하지만, 두 서명은 동일하게 취급되는 keystore라고 하니 큰 의미를 둘 필요는 없다.

https://chocobini.tistory.com/12

META-INF

apk에서 서명 정보가 담겨있는 위치이다.
apk를 압축해제했을 때 서명된 apk라면 이 디렉토리가 보일 것이고
그렇지 않다면 보이지 않을 것이다.
서명된 apk를 re컴파일해도 삭제된다.

https://stackoverrun.com/ko/q/12696882
: 서명에 대한 질문
https://en.wikipedia.org/wiki/Android_application_package
: apk wiki

서명하기

먼저 jarsigner를 사용하기 위해 jdk를 설치하자.

#apt update
#sudo apt-get install default-jdk
#sudo apt-get install openjdk-8-jdk  ;openjdk 8이 가장 많이 사용되는 버전이라고 한다.

설치가 다 되었으면 서명을 해보자.
keytool을 이용하여 keystore를 생성한다.

#keytool -genkey -alias bob -keyalg RSA -validity 20000 -keystore bob.keystore

jarsigner를 이용하여 생성한 서명을 apk에 적용하자.

#jarsigner -verbose -keystore ./bob.keystore bob.apk bob

이제 apk를 안드로이드 에뮬레이터에서 설치하면 성공할 것이다.


참조

https://developer.android.com/studio/publish/app-signing?hl=ko
: 안드로이드 스튜디오, 서명에 대해

https://m.blog.naver.com/opusk/220985259485
: jdk 설치 on ubuntu

https://blog.naver.com/liapp/220376753817
: 네이버 블로그, 서명에 대해

0개의 댓글