Programing

제거하지 않고 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES를 처리하는 방법

lottogame 2020. 3. 27. 07:57
반응형

제거하지 않고 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES를 처리하는 방법


APK를 다시 설치하려고했습니다.

$adb install -r new.apk

그리고 오류를 보여줍니다 :

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

한 가지 해결책은 new.apk를 제거하고 설치하는 것입니다.

그러나 APK를 다시 빌드하고 제거하지 않고 다시 설치할 수 있는지 궁금합니다. 예 : AndroidManifest.xml에서 일부 구성을 변경하거나 APK에 서명하지 마십시오.

"INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES"의 전체 의미를 말해 주시면 감사하겠습니다.


새 애플리케이션 (개발 시스템)이 이전 애플리케이션 사본 (장치 / 에뮬레이터에 설치된)과 다른 서명 키로 서명되었음을 의미합니다. 예를 들어, 이것이 장치 인 경우 다른 개발 시스템 (예 : 다른 개발자의 시스템)에서 이전 사본을 넣었을 수 있습니다. 또는 이전 키는 프로덕션 키로 서명되고 새 키는 디버그 키로 서명됩니다.


새로운 Xoom을 테스트하는 동안이 문제가 발생했습니다. 이전에 마켓 플레이스에서 앱을 설치했습니다. 나중에 새 버전의 앱을 테스트하는 동안이 오류가 발생했습니다.

마켓 플레이스를 통해 설치된 앱을 삭제하여 문제를 해결했습니다 (휴지통을 잡고 드래그). 그 후 아무 문제없이 개발 버전을 배포 할 수있었습니다.


팀의 다른 개발자가 배포하려는 하드웨어 장치에 앱을 빌드했을 때 이런 일이 발생했습니다. 하드웨어에서 앱을 제거하면 문제가 해결되었습니다.


adb를 사용하여 장치에서 앱을 제거하는 명령입니다.

adb uninstall <package name>

신비로운 원래 APK를 제거한 후에도이 오류가 발생했습니다. 마지막으로 테스트를 위해 Nexus 7에서 여러 명의 사용자를 설정했으며 다른 사용자 중 한 사람을 위해 앱이 여전히 설치되어 있음을 깨달았습니다. 모든 사용자를 위해 제거하면 오류가 사라졌습니다.


설치된 이전 버전을 삭제하지 않고 Eclipse를 통해 장치에서 디버깅 할 수 있도록 업데이트를 코딩하는 동안 패키지 이름을 변경했습니다. 다시 설치하려고 할 때 사용한 패키지 이름을 되 돌리지 않고이 오류가 발생했습니다. 동일한 패키지 이름을 사용하여 재설치에 성공했습니다.


장치에서 이전 빌드를 삭제하고 다시 설치하십시오. device.keystore가 이미 장치에 존재하므로 빌드를 제거하고 APK 만 설치하면됩니다.

감사


비슷한 오류가 발생하는 또 다른 유스 케이스에 직면했습니다. 처음에 오류가 발생했을 때 당황하고 제거했습니다. /data/data/{package.name}그 후 시도했지만 여전히 문제가 있습니다. 그런 다음 제거를 시도했지만 실패했습니다.

그런 다음 /system/app(루트 액세스 필요) 에있는 apk 파일을 제거하고 제거를 시도했지만 성공했습니다.

그 후 apk를 다시 설치하려고 시도했지만 작동했습니다.


가치있는 것을 위해 Cordova 프로젝트에 새 플러그인을 추가 한 후이 문제가 발생했습니다. 나는 cordova가 USB를 통해 장치에 직접 빌드하고 설치하도록했습니다.

장치에서 앱을 제거하여 문제를 해결했으며 다음 배포에서는 아무런 문제가 없었습니다.


출력 창에서 "Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]"오류와 함께 Andorid 장치 또는 에뮬레이터에 배포하지 못한 경우 장치 또는 에뮬레이터에서 기존 앱을 삭제하고 다시 배포하십시오. 디버그 빌드는 디버그 인증서를 사용하고 릴리스 빌드는 구성된 인증서를 사용합니다. 이 오류는 단순히 기기에 설치된 앱의 인증서가 설치하려는 인증서와 다르다는 것을 알려줍니다. 비 개발 (앱 스토어) 시나리오에서 이는 디바이스에 설치하기에 안전하지 않은 손상되었거나 수정 된 앱의 표시 일 수 있습니다.


위에서 아무것도 나를 위해 일하지 않았다. 나에게 문제는 android-support-v7-appcompat에 대한 Java 빌드 경로에 잘못된 소스가 있다는 것입니다. 프로젝트> 빌드 경로> 빌드 경로 구성>으로 이동하십시오. 소스 탭 아래에 android-support-v7-appcompat / gen, android-support-v7-appcompat / libs 및 android-support-v7-appcompat / src가 있는지 확인하십시오. 확인을 클릭하면 작동합니다.


오늘 같은 오류가 있었지만 문제는 정확히 같지 않았습니다. VirtualBox에 Android가 설치된 ADB를 사용하고 있습니다. 내 응용 프로그램 (서명 /하지 서명, 디버그 / 릴리즈 모드)의 다른 버전을 설치하려고하고 다른 방법이 오류를 가지고 : INSTALL_FAILED_UID_CHANGEDINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES.

이제를 볼 때 /data/data/{package.name}앱을 제거한 후에도 여전히 존재하는 많은 파일을 발견했습니다. 나는 rm -rf성공하지 않고 그들에게 노력했다 : I / O 오류가 발생했다.

이에 대한 해결책은 다음과 같습니다.

  • VM 종료
  • vdfuse(읽기 / 쓰기)로 VDI 이미지 마운트
  • 수리 Partition1와 이미지 파일을e2fsck
  • VM 마운트 해제 및 다시 시작

시뮬레이터가 실행 중이고 adb가 설치하려고한다는 것을 알 때까지 동일한 문제가 발생했습니다.


확인은 패키지 이름을 기반으로하기 때문에 config.xml 또는 매니페스트 파일 내에서 원하는 다른 이름으로 패키지 이름을 변경할 수 있습니다.

앱을 게시 할 때 이름을 다시 변경 하는 것을 잊지 마십시오 !


Genymotion에서 gradle 작업 connectedDebugAndoidTest(또는 connectedAndroidTest) 을 실행하려고하는 동안이 문제가 발생 했습니다 . 일반 에뮬레이터 에서 실행 하면 문제가 해결되었습니다.


다른 계정으로 앱을 설치했다고 생각합니다. (여러 계정 모드 기능) 설정> 앱> "앱 이름"> 제거에서 앱을 제거 할 수 있습니다

참고 URL : https://stackoverflow.com/questions/3185444/how-to-deal-with-install-parse-failed-inconsistent-certificates-without-uninstal

반응형