ClassPath가 변경된 후 앱 서명이 Android에서 변경되는 이유는 무엇입니까?
문제
세 가지 다른 응용 프로그램으로 분기된 Android 프로젝트가 있습니다. app-1
, app-2
그리고 app-3
, 그것은 몇 가지 사용자 정의를 적용합니다. 현재 많은 코드 복제가있어 유지 보수를 악몽으로 만듭니다. 분기 중 하나의 변경을 수행 한 다음 다른 두 개를 병합하십시오.
그래서 우리는 이름이 지정된 라이브러리 프로젝트를 만듭니다 app-core
, 이는 대부분의 복제 된 코드를 요소합니다. 여태까지는 그런대로 잘됐다.
이것을 응용 프로그램이 이미로드 된 에뮬레이터로 시작할 때 (리팩토링 전에)이 예외를 얻습니다.
Re-installation failed due to different application signatures
다른 서명? 그러나 방금 라인을 추가했습니다 .classpath
링크 app-core
자바 프로젝트!
주요 질문은 다음과 같습니다. 기존 사용자도 이것에 의해 귀찮게 될 것인가?
그리고 측면 질문 : 왜 다른 서명입니까?
해결책
디지털 서명은 앱에 서명하는 기계에 존재하는 서명 키에 의해 구동됩니다. Developer A가 표준 디버그 키를 사용하여 앱을 컴파일하고 에뮬레이터에 설치 한 다음 앱의 다른 변형을 설치하려고 시도합니다 (하나는 프로덕션 키와 함께 서명, 하나는 개발자 B의 디버그 키 등으로 서명했습니다. 동일한 에뮬레이터, 그 오류가 발생합니다.
주요 질문은 다음과 같습니다. 기존 사용자도 이것에 의해 귀찮게 될 것인가?
기존 사용자가 사용하는 앱 버전에 사용한 프로덕션 서명 키가 있습니까? 그렇다면 문제가 없어야합니다. 아니요, 당신은 나사입니다.
다른 팁
장치에서 응용 프로그램을 제거한 다음 코드를 다시 실행하면 작동합니다. 그것은 나에게 발생하고 같은 일을 시도했는데 이제 올바르게 작동합니다.
이 문제의 경우 U는 올바른 키가 (Window-> Preferences-> Android-> 빌드)에서 사용되는지 확인해야합니다. 이 u는 앱의 Android.mk 파일에서 확인할 수 있습니다. 올바른 키 경로를 배치 할 때이 오류를 피하기 위해 프로젝트를 청소하고 구축하십시오.
나는 비슷한 종류의 문제가있었습니다. 장치에 설치하는 경우 Eclipse에서 설치하기 전에 장치의 앱을 제거해야합니다. 그것은 당신의 문제를 확실히 해결할 것입니다.
건배