이미 같은 package name을 가진 apk가 있는데, 설치된 apk와 설치할 apk의 keystore가 다르다는 내용이다.
이유는 두가지인데,
- 다른 앱인데 같은 패키지 이름을 가진 경우
- 같은 앱인데 다른 keystore(예. IDE의 default keystore와 릴리즈용 keystore)를 사용한 경우
이다. 이 때는 이전의 apk를 삭제하거나 같은 keystore로 다시 signing한 후에 설치를 시도해야 한다.
참고로, adb install 명령어의 어떤 옵션으로도 덮어씌우기는 할 수 없다. 아마도 패키지 이름과 keystore가 맞지 않는다면 다른 소유주로 판단하는 것 같다. 그 근거는 자바 언어의 권장에 따라,
- package name에는 도메인을 거꾸로한 이름을 쓰게되어있어 같기가 거의 불가능하고,
- keystore는 만들 때마다 새로 만들어지기 때문에 이론상 같을 수 없기 때문이다.
그래서 실수로 이미 공개된 앱의 keystore를 분실하면, 매우 곤란한 문제에 부딪히곤 한다.
핑백: debug용 keystore 만들기 | Dog발자