ClassPath가 변경된 후 앱 서명이 Android에서 변경되는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2458931

  •  20-09-2019
  •  | 
  •  

문제

세 가지 다른 응용 프로그램으로 분기된 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에서 설치하기 전에 장치의 앱을 제거해야합니다. 그것은 당신의 문제를 확실히 해결할 것입니다.

건배

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top