커니의 안드로이드 이야기 :: 구글맵 API 활용하기 - (1) MD5 Fingerprint 생성, API Key 발급받기
구글맵 API 활용하기 - (1) MD5 Fingerprint 생성, API Key 발급받기
2010.01.08 15:17
지금까지 써왔던 것들은 모두 안드로이드 기본 패키지에 들어가있던 것들로, 별도의 라이브러리 설정이 필요가 없었습니다. 하지만, 구글맵의 경우 추가로 구글에서 제공하는 API를 사용하는 것이기에 타겟도 구글맵 라이브러리가 포함된 타겟을 사용해야 하고, 메니페스트 파일에 추가로 선언도 해 주어야 합니다. 그 전에, 구글맵 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 내에 있는 것이 아니라 [JDK가 설치된 폴더]/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
잠시 기다리면 아래와 같이 생성된 MD5 Fingerprint가 표시됩니다.
잘 복사하시고, 이것을 http://code.google.com/android/maps-api-signup.html 에 가신 후, MD5 Fingerprint를 입력하고, 구글 계정으로 로그인하면 API Key가 발급됩니다.
동의 찍고 Generate API Key 누르고~~
생성된 MD5 Fingerprint를 입력한 후, Generate API Key 버튼을 누르시면 아래와 같이 사용자 키가 발급됩니다.
이 사용자 키는 잃어버리지 않게 유의하셔야 합니다. 앞으로 동일한 개발환경에서는 이 API Key를 사용하여 구글맵 API를 사용할 수 있으며, 만약 개발환경이 바뀐 경우에는 다시 API Key를 발급받아야 정상적으로 구글맵 API를 사용할 수 있습니다.
이로써 구글맵 API를 이용하기 위한 준비 절차가 모두 끝났습니다.
다음시간부터는 본격적으로 어플리케이션에서 구글맵을 이용하는 방법에 대해 알아보도록 하겠습니다 :)
'위치 기반 서비스 사용하기 > 구글 지도 (Google Maps)' 카테고리의 다른 글
Google Maps Android API v2 사용하기 (인증 및 초기설정, 지도 띄우기) (185)
Google Maps Android API v2 사용하기 (ICS 이하 단말기 지원하기 : SupportMapFragment) (12)
구글맵 API 활용하기 - (2) 구글맵 띄워보기 (74)
구글맵 API 활용하기 - (1) MD5 Fingerprint 생성, API Key 발급받기 (46)
구글맵 API 활용하기 - (3) 지도에 확대/축소 기능 추가하기 (47)
위치 기반 서비스 사용하기/구글 지도 (Google Maps)
MD5 Fingerprint,
구글맵,
구글맵 API,
2010.08.12 23:41 신고
최고! 웬만한 책보다 더 낫네요 ㅠㅠ
2010.10.07 18:53 신고
아~ 정말 잘 봤습니다. 참고가 많이 되었습니다!
Oreilly 책에서 MJAndroid 에서부터 막혀서..-_-;;
그것도 책 첫부분이라.. 영~ 기분이 좋지 않았는데.~
정말 쉽게 설명해 주셔서 감사합니다^^
2010.10.08 21:24 신고
질문 하나만 드리겠습니다 ^^ 너무 늦었지만........
다름이 아니라 md5 값을 제대로 받았는데
커니님의 강좌에 나와있는 스크린샷이랑 좀 달라서요.....
도스창에서보면 "인증서지문(md5)"이런식으로 되어 있는데 저는 그냥 "(md5)"라고 되어 있구요
그리고 그 값을 구글에 등록시키려면 올바른 값이 아니라고 하네요..........
이때 제가 할 수 있는 일은 뭐가 있을까요..??
2010.10.10 15:35 신고
키스토어 파일이 잘못되어 있을 수도 있곘네요. 한번 그 파일을 삭제하고 아무 프로젝트나 빌드하여 실행하면 다시 키스토어 파일이 생길겁니다.
다시 생성된 키스토어 파일로 시도해보세요~
2010.10.11 10:38 신고
죄송하지만..^^ 한번만 더 여쭤볼게요.. keystore 지우고 다시 깔아보고 이클립스, 자바 플러그인 안드로이드 sdk, 심지어 윈도 재설치후 다시 설치했는데도 http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=18420
이런 현상이 지속되어서요........... 심지어 다른 컴퓨터에서 생성한 제대로된 개인 키스토어를 제 컴퓨터로 보내도 이상한 키가 생성되더라구요.........
2010.10.12 12:29 신고
이런 현상은 처음 보는거네요..... 인터넷에 keytool로 검색해서 이 증상에 대한 정확한 해결 방안을 찾아보는 것이 좋을 것 같네요.
YoonJin Park
2011.03.01 20:07 신고
저는 커니님 말대로 했다가
[2011-03-01 19:23:16 - GPS] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
이런 에러가 떠서
왜 이런가 찾다가 한가지 고치는 방법을 찾았는데
보통 sdk manager에서 virtual device 를 셋팅을 하고난후 이클립스에서 api선택시 구글 api로 전환하는데
이렇게되면 이클립스 셋팅이 잘못하면 예전 보통의 안드로이드 api의 환경에서 실행이 되기에
uses library 에 com.google.android.maps를 추가시 핸드폰 환경 덕에 실행이 안되지요 그렇기에
이클립스 위의 탭에서
Windows -> andorid SDK and AVD Manager에서 갖고있는 avd를 edit 하여 target 을 google api로 다시 전환후
skin: 의 bulit in 에서 화면을 다시 조정해야합니다
그리고나서 실행하였더니 전 확실하게 됬고여
커니님의 튜토리얼에 다시한번 감사드립니다.
2011.03.01 20:12 신고
그럼이제 맵 확장 축소로 갑니다 저는 헤헤
2011.04.10 17:13 신고
PATH 설정마치고 keytool.exe.실행을 했는데 창이 뜨자마자 꺼지네요...
뭐가 문제일까요..
2011.04.12 00:49 신고
그냥 실행하면 안되고 명령 표시줄에서 실행해야합니다.
물론 적절한 매개변수와 함께요..... 최근은 이클립스 ADT를 통해 다 생성 가능하니 그걸 사용하시는게 더 편합니다.
badvoyz
2011.08.18 02:02 신고
안녕하세요 구글맵 API키 받는 과정에서
인증서 지문<SHA1> 이런식으로 나오는데 어떻게 해야되나요 ??
2011.08.18 22:03 신고
흠;; 그런 경우는 처음이라 잘 모르겠네요...;
위와 똑같이 입력했는데 MD5가 아니라 SHA로 나오는건가요?
2011.10.06 18:46 신고
"-list" 앞에 "-v"를 넣으면 MD5 및 다른 모든게 나오네요..
2011.08.20 23:26 신고
구글 계정 인정받은걸로 apiKey 값을 다른 컴퓨터에서 작업해도 사용할수있는건가요???
2011.08.21 21:20 신고
컴퓨터마다 디버그용 keystore가 다르므로 같은 키를 사용할 수 없습니다. 단, 같은 keystore를 사용한다면 해당 keystore를 사용하여 받은 apikey를 사용하면 다른 컴퓨터에서도 사용할 수 있습니다.
2011.09.21 21:31 신고
너무 쉽게 설명해 주셔서 너무나 감사 합니다.
MD5 fingerprint까지 받고.. googe site에서 Keygen 까지 하였는데..
API Key가 나와야 할 곳에
"??? ??? ???? ????. ????? '??' ??? ?? ? ??? ?? ??? ??? ???. "
라고 나오는데요.. 이건 어케 해결 해야 하나요??
커니님의 문서를 많이 활용하고 있습니다.. 언제나 저만치 앞서가셔서.. 너무나 부럽습니당...
2011.09.23 10:20 신고
브라우저의 인코딩 설정이 혹시 잘못된 것 아닐까요?
인코딩 설정을 변경해보시거나 다른 브라우저에서(....) 한번 시도해보세요~
2011.11.29 10:17 신고
C:\Users\Owner\.android> keytool -list -alias androiddebugkey -keystore debug.key store -storepass android -keypass android -v
위와 같이 입력해야, MD5, SHA1, SHA256 다 나오는 군요. 웹페이지에서 입력해야할 것은 MD5값이고, keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 만 하면, SHA1 값만 나와서 유효하지 않은 값이라 나옵니다.
수정이 필요할 것 같네요.
2011.11.29 14:45 신고
일반적인 경우에는 저 명령어로 잘 나옵니다.
저도 여러 환경에서 테스트해봤지만 아직 저 명령어로 안나오는 경우는 없네요. 공식 문서에도 저 명령어만 나와있구요.
http://code.google.com/intl/ko-KR/android/add-ons/google-apis/mapkey.html
혹시 환경이 어떻게 되는지 알 수 있을까요?
2012.05.23 10:18 신고
좋은 정보 늘 감사히 잘 읽고 있습니다. 개정판(2판)은 1판이 있어서 구입은 안했고 학교 도서관에 신청해서 읽어보고 있습니다. 본론으로 들어가서 질문을 드리면 일단 테스트용으로 구글 key를 받아서 넣어서 제 폰에서 실행해보니 잘되더라구요. 그런데 제가 apk 파일을 export해서 다른 분들 핸드폰에서 돌려보면 구글맵 마커이미지는 잘 나오는데
맵 배경이 체크무늬로 나타나더라구요. 이런 현상을 없애려면 어떻게 해야하는지.. 잘 모르겠어서 이렇게 질문 남기고 갑니다. 감사합니다. 커니
2012.05.23 19:22 신고
실제 기기에서 맵뷰를 테스트하려면 디버그용 키가 아닌 실제 자신이 생성한 키를 사용하여 애플리케이션을 서명해야 합니다. akskaksk
2012.07.17 12:46 신고
키 저장소 파일이 존재하지 않다는건 무엇이죠...
흠냐 ㅜㅜ
2012.07.30 17:24 신고
커니님, MD5키를 얻는 도중 의문점이 생겨서 여쭤봅니다. 사용자명/.android 경로를 가서 cmd창을 켜고, keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 이 명령어를 넣으면 SHA1키만 나오거든요.. 저만그런걸까요?
그래서 keytool -v -list -keystore debug.keystore -keypass android -storepass android -alias androiddebugkey 이렇게 바꾸어보니, 모든 키 값이 나오네요.. 왜 그런걸까요?
2012.07.31 14:06 신고
저도 정확히는 모르겠습니다.
적어도 제가 테스트했던 컴퓨터들에서는 저 명령어만으로도 잘 나왔었는데, 아직까지 어떤 환경이 영향을 미치는 것인지는 모르겠네요 ㅠㅠ
커니님
2012.08.02 23:27 신고
커니님, 마지막에 구글 인증서 적고 동의 체크하고 create눌렀는데
google ?? ? ? ? ? ? ? ? ??
만 뜨고 api 주소는 나오질않는데 그 이유는 무엇인가요?ㅜㅜㅜ
2012.12.20 18:20 신고
이제 더이상 이 방법을 사용하지 않아도 되나요?????
2012.12.20 20:06 신고
기존 구글맵을 사용하시려면 이 방법을 사용하셔야 합니다.
하지만 이번에 새로 공개된 안드로이드용 구글맵 v2를 사용하려면 이 방법이랑은 좀 많이(..) 다른 방법을 사용해야 합니다~~
자세한 사항은 http://androidhuman.tistory.com/518 을 참고하세요~
프로그래머.
2013.04.15 01:13 신고
좋은글 출처를 표시하고 블로그에 담아갑니다. ^^
2013.04.27 17:10 신고
윈도우 7에서는 어떻게 하는건가요? exe 파일은 실행하자마자 꺼져버리거든요...
2013.04.28 15:54 신고
실행파일을 더블클릭해서 실행하는 것이 아니라, 명령 프롬프트에서 실행해야 합니다.
2013.10.03 23:21 신고
원래는 구글맵이 떴었는데, 이클립스를 새로 깔고나서는 맵이 안뜨네요...
이클립스를 다시 깔면 키에 영향을 주나요?? jdk는 그대로 쓰는데...
2013.10.04 11:19 신고
디버그용 서명 키가 변경되어서 발생하는 듯 합니다. 키 등록을 다시 해주시면 됩니다~~
홍컴공
2015.05.06 19:36 신고
andriod studio 환경에서 jdk랑 이렇게 두개만 설치해서 지도와 gps를 띄워볼려고하는데요 이대로 따라서 해도 같은 결과가 나오나요??
2015.05.11 23:49 신고
질문의 의도를 정확히 이해하지 못했습니다. 실습하고 싶으신 내용이 어떤 것인지요?
... [237]
... [499]
안드로이드 생각
인텐트(Intent)
컨텐트 프로바이더
리소스(Resources)
다이얼로그(Dialog)
토스트(Toast)
홈스크린 위젯
액션 바(Action Bar)
프래그먼트(Fragment)
위젯(Widgets)
위치정보 사용하기
구글 지도 (Google Maps)
기드래곤:ic_drawer 를 어떤 파일로만들어서 drawb..
nova:우앙 ㅋㅋㅋ 오랜만에 들어와봄
dd:굿입니다
김병희:막힌 것 뻥 뚫어주셔서 기쁩니다.
링크..
ㅇㅇ:이클립스가 쓰레기라고 하지만 2016년 지..
Total : 3,472,464 Today : 68
Yesterday : 1,316