Error generating final archive: Keystore was tampered with, or password was incorrect
Keystore was tampered with, or password was incorrect
KeyStore를 이용하여 App을 개발하였을 경우, 마켓에 올리기 위해 release 버전으로 올려야만 다운로드시 정상적으로 App이 작동한다.
이 부분은 애뮬레이터에서는 이와 상관없이 작동되므로 간과하고 넘어갈 수 있음을 잊지 말아야 한다.
그 일례로 구글맵을 이용하여 ApiKey값을 디버그용으로 발급받은 키일 경우
마켓에서 올린뒤 다운로드 받은뒤 실행하면 지도가 정상적으로 뜨지 않는 현상이 발생한다.
이처럼 키값을 이용하여 배포할 경우 개발 외적으로 신경을 써줘야 하는 부분이 있음을 명심하여야 할 것이다.
그럼 이제부터 Release용 키를 생성하는 방법을 간단히 소개하겠습니다.
안드로이드 마켓에 배포를 하기 위해서는 애플리케이션에 서명을 해주어야 한다.
이유인즉 자신이 인증하는 애플리케이션임을 서명을 통해서 알리기 위함이다.
그러기 위해서는 개인 키를 포함하는 암호화된 서명 파일이 있는 keystore가 필요하고 이를 JDK에서 제공하는 jarsigner 로 공개키로 서명하게 된다.
아래 모든 일련의 작업들은 cmd창을 이용하여 진행하시면 됩니다.
1. JDK의 keytool을 이용하여 배포용 key(androes)를 생성한다.
C:\.android\keytool -genkey -v -keystore debug.keystore -alias androes -keyalg RSA -validity 10000 [Enter] keystore 암호를 입력하십시오: 이름과 성을 입력하십시오. [Unknown]: Androes 조직 단위 이름을 입력하십시오. [Unknown]: 조직 이름을 입력하십시오. [Unknown]: 구/군/시 이름을 입력하십시오? [Unknown]: 시/도 이름을 입력하십시오. [Unknown]: Seoul 이 조직의 두 자리 국가 코드를 입력하십시오. [Unknown]: KR CN=Androes, OU=Unknown, O=Unknown, L=Unknown, ST=Seoul, C=KR이(가) 맞습니 까? [아니오]: y
다음에 대해 유효 기간이 10,000일인 1,024비트 RSA 키 쌍 및 자체 서명된 인증서(SHA1withRSA) 생성 중 : CN=Androes, OU=Unknown, O=Unknown, L=Unknown, ST=Seoul, C=KR < androes>에 대한 키 암호를 입력하십시오. (keystore 암호와 같은 경우 Enter를 누르십시오): [debug.keystore 저장 중]
2. 구글맵을 이용하여 배포하고자 할 경우 릴리즈용 apikey를 발급 받아야 한다. 개발 시에는 debug.keystore로 발급 받은 apikey를 사용하지만, 배포시에는 Release용으로 발급 받은 keystore의 apikey를 사용해야만 다운로드 정상적으로 해당 서비스를 이용할 수 있다. keystore 암호(기본값): android (개인적으로 변경하지 않았을시)