programing

INSTALL_PARSE_FAILED_ 처리 방법제거하지 않고 일관성이 없는_인증서?

linuxpc 2023. 8. 14. 22:32
반응형

INSTALL_PARSE_FAILED_ 처리 방법제거하지 않고 일관성이 없는_인증서?

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

$adb install -r new.apk

오류가 표시됩니다.

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

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

그런데 apk를 다시 빌드하고 제거 없이 다시 설치할 수 있는지 궁금합니다.예를 들어 AndroidManifest.xml에서 일부 구성을 변경하거나 APK에 서명하지 않는 등의 작업을 수행합니다.

"INSTALL_PARSE_FAILED_"의 전체 의미를 알려주시면 감사하겠습니다.일관성이 없는_인증서"입니다.

즉, 개발 컴퓨터에 있는 응용프로그램의 새 복사본이 장치/에뮬레이터에 설치된 응용프로그램의 이전 복사본과 다른 서명 키로 서명되었음을 의미합니다.예를 들어, 이것이 장치인 경우 다른 개발 컴퓨터(예: 다른 개발자의 컴퓨터)에서 이전 복사본을 설치했을 수 있습니다.또는 이전 버전은 프로덕션 키로 서명되고 새 버전은 디버그 키로 서명됩니다.

저는 새로운 Xoom에서 테스트를 하던 중 이것을 우연히 만났습니다.마켓플레이스에서 앱을 설치한 적이 있습니다.나중에 새로운 버전의 앱을 테스트하는 동안 이 오류가 발생했습니다.

마켓플레이스를 통해 설치된 앱을 제거하여 수정했습니다(그냥 들고 휴지통으로 드래그).그 후 개발 버전을 문제 없이 배포할 수 있었습니다.

팀의 다른 개발자가 제가 배포하려는 하드웨어 장치에 우리 앱을 구축했을 때 이런 일이 일어났습니다.하드웨어에서 앱을 제거하여 문제를 해결했습니다.

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

adb uninstall <package name>

원래 APK를 제거하고도 이 오류가 발생하여 의아했습니다.마침내 저는 테스트를 위해 Nexus 7에 여러 사용자를 설정했고 다른 사용자 중 한 명을 위해 앱이 여전히 설치되어 있다는 것을 깨달았습니다.모든 사용자를 위해 제거한 후 오류가 사라졌습니다.

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

장치에서 이전 빌드를 삭제하고 동일하게 다시 설치하기만 하면 됩니다.기기 때문에.keystore가 장치에 이미 있으므로 빌드를 제거하고 APK를 다시 설치하면 됩니다.

감사해요.

저는 비슷한 오류가 발생한 다른 사용 사례에 직면했습니다. 때, 저는 했고, ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ/data/data/{package.name}그 후에도 저는 노력했고, 저의 문제는 여전히 남아있었습니다.그런 다음 제거를 시도했지만 실패했습니다.

저는 그런다있는 apk파제일에 했습니다./system/app루트 액세스가 필요합니다. 제거를 시도했지만 성공했습니다.

그 후 apk를 다시 설치해보니 작동했습니다.

Andorid 디바이스 또는 에뮬레이터에 "Failure [INSTALL_PARSE_FAILED_"라는 오류와 함께 배포가 실패한 경우"출력 창에서 장치 또는 에뮬레이터의 기존 앱을 삭제하고 다시 배포하기만 하면 됩니다.디버그 빌드는 디버그 인증서를 사용하고 릴리스 빌드는 구성된 인증서를 사용합니다.이 오류는 단순히 장치에 설치된 앱의 인증서가 설치하려는 인증서와 다르다는 것을 알려주는 것입니다.비개발(앱 저장소) 시나리오에서는 장치에 설치하는 것이 안전하지 않은 손상되거나 수정된 앱을 나타낼 수 있습니다.

시뮬레이터를 실행하고 있고 adb가 그것에 설치하려고 한다는 것을 알기 전까지 저는 같은 문제를 겪었습니다.

저는 코르도바 프로젝트에 새로운 플러그인을 추가한 후 이 문제에 부딪혔습니다.저는 USB를 통해 장치에 직접 빌드 및 설치하는 코드바를 받아왔습니다.

저는 기기에서 앱을 제거하여 수정했고, 다음 배포 시에는 문제가 없었습니다.

저는 위에서 온 어떤 것도 효과가 없었습니다.문제는 Android-support-v7-appcompat용 Java 빌드 경로에 잘못된 소스가 있다는 것입니다.Project > Build Path > Configure Build Path > 로 이동하면 됩니다.Source 탭 아래에 Android-support-v7-appcompat/gen, Android-support-v7-appcompat/libs 및 Android-support-v7-appcompat/src가 있는지 확인합니다.확인을 클릭하면 작동합니다.

오늘도 똑같은 오류가 발생했지만, 문제는 정확히 똑같지 않았습니다.는 VirtualBox에 Android가 설치된 ADB를 사용하고 있습니다.다른 버전의 앱(서명됨/서명되지 않음, 디버그/해제 모드)을 설치하려고 했는데 두 가지 오류가 발생했습니다.INSTALL_FAILED_UID_CHANGED그리고.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES.

자, 이제 볼 때./data/data/{package.name}저는 앱을 제거한 후에도 여전히 남아 있는 파일들을 많이 찾았습니다.하려고 했습니다.rm -rf성공하지 못했습니다. I/O 오류가 발생했습니다.

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

  • VM 종료
  • VDI 이미지 탑재vdfuse(읽기/쓰기)
  • 복구Partition1이미지 파일:e2fsck
  • VM을 마운트하고 다시 시작합니다.

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

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

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

다른 계정에서 설치한 당신의 앱입니다. (다중 계정 모드 기능 ) 설정>에서 앱을 제거할 수 있습니다.앱>"앱 이름"> 제거

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

반응형