debug.keystore 를 이용해서 받는방법은 많이 있던데,

실제 구글마켓에 올리기 위해서 키스토어를 만들어서

MD5를 얻는 방법은 잘 찾기가 힘들어서 올립니다.




애플리케이션 서명과 구글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 암호를 입력하십시오:

    여기서 첫번째 mykeystore 는 alias 이름을 적어줘야 되고
    두번째 myandroid.keystore 는 실제 키스토어를 적으면 된다. 



애플리케이션 서명


1_ 먼저 서명이 안된 애플리케이션(.apk)를 만든다: Eclipse에서 프로젝트 선택후 컨텍스트 메뉴(오른쪽 마우스 클릭)에서 Android Tools -> Export Unsigned Application Package..

2_ 개인키 저장소에 있는 키(비밀키)로 서명한다

  1. jarsigner -verbose -keystore myandroid.keystore Viewer.apk mykeystore alias

    출처 : http://schoolmania.cafe24.com/tc/185?TSSESSIONschoolmaniacafe24comtc=10515b4b43677c9d34ef443777e380ef 
     

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


구글맵 API를 제데로 사용하려면 우선 인증을 해야한다.

구글맵 API가 오픈되어있지만, 결국 사용자들이 API를 통해 정보를 요구하면 구글맵 서버로부터 정보를 받아오되는데
아무나 API를 사용할 수 있게 한다면 서버에 과부하가 일어날 가능성이 높아져서 구글에서 API를 사용하려는 사람에게 API Key를 발급해주고, 그 키를 가진 사람만이 지도 정보를 받아올 수 있도록 하고 있습니다. 

구글맵을 사용하기 위해서 필요한 API Key를 발급받기 위해서는 일종의 "개발자 인증"이라고도 할 수 있는 keystore를 이용하여 MD5 Fingerprint를 생성한 후, 생성된 Fingerprint를 가지고 API 키를 발급받아야 합니다. 이 keystore는 나중에 어플리케이션을 개발하여 마켓에 등록하기 전 어플케이션 서명을 할 때 꼭 필요한 것으로, 여기에서는 테스트에 사용되는 debug keystore를 사용하지만 실제로 마켓에 올리거나 단말기에 어플리케이션을 올릴 때에는 자신의 keystore를 사용하여야 합니다.

그럼, 본격적으로 MD5 Fingerprint를 얻는 방법에 대해서 알아보겠습니다. 
MD5 Fingerprint를 얻기 위해서는 keytool이라는 툴을 이용하여야 하는데, 이 keytool은 안드로이드 SDK 내에 있는 것이 아니라 자바가 설치된 폴더의 /bin 폴더 내에 있습니다.


keytool을 이용하려면 명령 프롬프트를 이용하여야 하는데, 이때 JDK의 Path가 설정되어 있지 않으면 매우 불편합니다. JDK의 Path가 등록되어 있는 경우도 있지만, 등록되어 있지 않을 경우 수동으로 등록해주도록 합시다. 

내 컴퓨터 - 속성을 선택한 후, 고급 탭의 [환경 변수] 버튼을 누르면 아래와 같은 화면이 표시됩니다.



여기에서, 아래의 시스템 변수 목록 중 Path 항목을 선택한 후, 편집을 눌러 아래와 같이 맨 마지막 항목 각 항목을 구분지어주는 문자인 세미콜론(;)을 입력한 후, JDK의 bin 폴더의 경로를 입력한 후, 확인을 눌러주시면 됩니다.


Path가 제대로 등록 되었다면, 본격적으로 MD5 Fingerprint를 생성할 차례입니다
안드로이드 어플리케이션 테스트에 사용되느 디버그용 keystore는 윈도우 XP 기준으로 C:\Documents and Settings\[사용
자 계정명]\.android 폴더 내에 debug.keystore라는 이름으로 저장되어있습니다.


여기에서 아래와 같이 입력합니다.
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
 

잘 복사하시고, 이것을 http://code.google.com/android/maps-api-signup.html 에 가신 후, MD5 Fingerprint를 입력하고, 구글 계정으로 로그인하면 API Key가 발급됩니다


생성된 MD5 Fingerprint를 입력한 후, Generate API Key 버튼을 누르시면 아래와 같이 이동을 하게 되는데
구글에 로그인을 하게되면 


아래와 같은 페이지로 전환되며 성공적으로 키 등록이 완료가 됩니다.

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST