2010년 12월 9일 목요일

Android APK signing 과 내보내기

안드로이드 마켙에 어플을 등록하기 위해 인증을 받는 과정을 실었다.

[참고: http://www.androidpub.com/100165]

개인 서명 인증서 만들기

안드로이드 마켓에 배포를 하기 위해서는 애플리케이션에 서명을 해주어야 한다. 자신이 인증하는 애플리케이션임을 서명을 통해서 알리는 것이다.
그러기 위해서는 개인 키를 포함하는 암호화된 서명 파일이 있는 keystore가 필요하고 이를 JDK에서 제공하는 jarsigner 로 공개키로 서명하게 된다.
이클립스에서 Android SDK를 통해서 애플리케이션을 실행할 때마다 자동으로 디버그 서명을 만들고 이 서명이 애플리케이션이 사용될 때마다 서명되기 때문에 눈에 보이지는 않지만 항상 애플리케이션을 서명되고 있다.
  • 디버그 서명 위치: ~/.android/debug.keystore

애플리케이션 서명과 구글API 키 인증 시나리오

keytool로 키 쌍을 생성하면 사용자 홈 디렉토리의 특정한 곳에 keystore로서 저장된다. 비밀 키는 키 저장소에 암호화 되어 보호되며 이 비밀 키로 애플리케이션을 서명하게 된다. - 특정 조직의 경우 공인 인증서 이용 -
구글 API를 이용하려면 API용 키가 필요한데 이 때 인증 서명서의 finger print(MD5)가 필요하다
안드로이드는 공개 키를 이용하여 서명 인증서를 해독하여 사용하는데 애플리케이션이 설치 될 때만 서명 인증서를 검사하기 때문에 설치 후에는 인증서나 키가 만료되도 실행이 가능하다.

개인 인증서의 효용

본인이 개발한 애플리케이션임을 알리고 관리를 위해서는 가능하면 하나의 인증서로 관리하는 것이 편리할 것이다.
  • 업그레이드 간편화
  • 여러 애플리케이션을 하나의 프로세스로 실행
  • 코드, 데이터 공유

서명 인증서 만들기

key store 생성

  1. keytool -genkey -v -keystore myandroid.keystore -alias mykeystore -keyalg RSA -validity 10000
  • 키 쌍을 만들며 myandroid.keystore에 저장 며 이 키는 mykeystore 라는 이름으로 접근이 가능하다. 키를 만드는 알고리즘은 RSA이고 10000일(27년)간 유효하다.

finger print 확인

keytool -list 로 SDK의 인증서의 MD5 지문을 확인 할 수 있다.

  1. keytool -list -alias mykeystore -keystore myandroid.keystore
  2. keystore 암호를 입력하십시오: 


애플리케이션 서명


1_ 먼저 서명이 안된 애플리케이션(.apk)를 만든다: Eclipse에서 프로젝트 선택후 컨텍스트 메뉴(오른쪽 마우스 클릭)에서 Android Tools -> Export Unsigned Application Package..
2_ 개인키 저장소에 있는 키(비밀키)로 서명한다
  1. jarsigner -verbos -keystore mykey.keystore Myandroid.apk mykeyalias

댓글 없음:

댓글 쓰기