Android 앱이 설치되지 않았습니다. 서명이 충돌하는 동일한 이름의 기존 패키지가 이미 설치되어 있습니다.


131

내 에뮬레이터에서 프로그래밍 방식으로 APK를 업그레이드하려고 할 때. 나는 얻다:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

여기에 이미지 설명을 입력하십시오

나는 여전히이 업그레이드의 테스트 단계에 있으므로 다운로드 한 파일은 이전 버전의 서명 된 apk이며 문제없이 작동해야한다고 생각합니다.

제안에서 : 프로파일 링 서명이있는 동일한 이름의 기존 패키지가 이미 설치되어 있습니다. 디버그 모드와 일반 모드 모두에서 에뮬레이터를 실행하려고 시도했지만 작동하지 않았습니다.

내가 잃어버린 것에 대한 생각이 있습니까?


1
설치하기 전에 동일한 서명을 사용하여 APK에 서명
— Praveen Sharma

이 문제는 서명 또는 키 저장소 파일 불일치로 인해 솔루션에 대한 링크를 찾습니다. readyandroid.wordpress.com/…
— Ready Android

답변:


97

문제는 APK에 서명하는 데 사용 된 키입니다. 기본적으로 IDE에서 직접 실행하고 에뮬레이터를 열면 에뮬레이터에 설치된 APK가 디버그 키로 서명됩니다 (보통 ~ / .android에 설치됨) /debug.keystore)와 같이 이전 APK에 현재 사용중인 것과 다른 키로 서명 한 경우 서명을 충돌시키기 위해 항상 서명 충돌이 발생합니다. 수정하려면 동일한 키를 사용하여 서명해야합니다. 이전 APK가 다른 SDK의 디버그 키로 서명 된 경우에도 두 APK 모두 키가 다릅니다.

또한 apk에 서명하기 전에 어떤 키가 사용되었는지 정확히 모르지만 새 버전의 앱을 설치하려는 경우 이전 응용 프로그램을 제거하고 새 응용 프로그램을 다시 설치하면됩니다.

도움이 되었기를 바랍니다...

문안 인사!


나는 APK가 아닌 apk를 서명하고 에뮬레이터 내부에서 수동 다운로드 / 설치를 할 것입니다. 에뮬레이터는 개발되지 않은 다른 APK를 다운로드하고 업그레이드를 시도해야합니다. 이것이 작동하면 귀하의 답변을 수락하겠습니다. Thx
— 제임스 오라 벡

@MartinCazares 어쨌든 APK 키를 얻을 수 있습니까? 앱 데이터가 손실되지 않습니까?
— heisenberg

글쎄, 당신이 응용 프로그램을 설치했다면, 당신은 열쇠를 가지고 있어야합니다. 이전 apk가 귀하에 의해 생성되지 않은 경우, apk에 서명하는 데 사용 된 키를 얻는 방법이 없다는 것 외에는 해당 apk 개발자에게 해당 키에 대한 요청을해야합니다.
— Martin Cazares

정말 감사합니다! 당신은 내 하루와 팀을 구했습니다! 하하
— perozzo

1
Playstore에 라이브로 응용 프로그램이 있습니다. 이제 테스트 장치에 해당 응용 프로그램을 설치 한 상태로 유지합니다. 이제 최신 버전의 응용 프로그램을 업데이트하려면 app build.gradle 파일에서 "versionno"및 "versionname"을 업데이트합니다. 이제 서명 된 키를 사용하여 릴리스 빌드를 만들었습니다. 이제 :: 오류를 통해 빌드를 설치하려고 시도하는 동안 충돌 서명이있는 동일한 이름의 기존 pacakage가 이미 설치되어 있습니다. 그리고 설치되지도 않습니다. 친절하게 도와주세요.
— Tarit Ray

195

나는 같은 오류 메시지가 있었지만이 답변은 도움이되지 않았습니다. 4.3 넥서스 7에서는 소유자가 아닌 사용자를 사용하고있었습니다. 이전 버전을 제거했지만 동일한 메시지가 계속 나타납니다.

해결 방법 : 소유자로 로그인하고 설정-> 앱으로 이동 한 다음 모두 탭으로 스 와이프해야했습니다. 이전 버전이 '설치되지 않음'으로 표시되어있는 목록의 맨 끝으로 스크롤하십시오. 그것을 선택하고 오른쪽 상단 모서리에있는 '설정'버튼을 누르고 마지막으로 '모든 사용자를위한 제거'


2
"다운로드"에서 "전체"목록으로 스 와이프하여 앱 목록에서 찾아야했습니다.
— ShawnFeatherly

1
언급했듯이 맨 아래로 끝까지 스크롤하십시오. "설치되지 않은"앱은 알파벳 순서로 나열되어 있지 않습니다 .
— jmcmann

3
감사합니다!!! 테스트 Nexus 7을 친구에게 빌려준 후에도 문제였습니다. 내 키가 손상되었다고 생각했습니다. 나중에 혼란을 줄이기 위해 해당 사용자를 삭제했습니다.
— mm2001

1
내 시간을 절약했습니다. 명성.
— Piyush Patel

2
감사. 모든 사용자로 로그인하고 1 씩 1을 제거해야했습니다.
— Ricardo

8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

여기에 이미지 설명을 입력하십시오

설정> 앱으로 이동하여 앱 정보를 찾아서 엽니 다. 그런 다음 오버플로 메뉴 (3 개의 수직 점)를 열고 모든 사용자에 대해 제거를 선택하십시오.


이것은 나를 도왔습니다-감사합니다. 어떤 이유로 홈 화면을 통해 앱을 제거한 후에도 두 가지 버전의 앱이 나타납니다.
— Joro Tenev

감사합니다 Joro Tenev 투표
— Keshav Gera


5

서명 된 APK 파일과 서명되지 않은 APK 파일에는 차이가 있습니다. 아마도 당신은 이전에 서명하지 않았을 것입니다. 서명 된 버전을 설치하기 전에 서명되지 않은 사람을 삭제하면됩니다. 이 작업을 수행하는 방법은 정확한 버전에 따라 다르지만 일반적으로 에뮬레이터에서 설정-> 응용 프로그램으로 이동하여 앱을 길게 클릭 한 다음 삭제 / 제거 / 제거합니다.


서명되지 않은 apk를 만들고 서명되지 않은 apk를 다운로드하여 해결되는지 확인하면 하드웨어로 서명 된 apk를 테스트 할 수 있습니다. 이 경우 답변을 수락하겠습니다.
— James

프로그램 내에서 업그레이드를 시도하고 있으므로 수동 제거 / 설치를 수행해도 작동하지 않습니다.
— James Oravec

서명되지 않은 앱 설치를 수행하면 간단하게 얻을 수 app not installed있습니다. 에뮬레이터 설정을 Allow installation of apps from unknown sources확인 하고 확인했습니다. 따라서 이것은 해결책이 아닌 것 같습니다.
— James Oravec

제안에 대해 투표를합니다. 최종 솔루션을 얻는 데 도움이되었다고 생각합니다. 감사!
— James

5

디버그 APK를 사용하는 경우 서명하는 데 사용되는 키는

C:\Users\<user>\.android\debug.keystore

동일한 키를 사용하는 경우 설치시 충돌이 없어야합니다.


고마워 산티아고, 마지막 날 내 컴퓨터 하드 드라이브를 기계식 드라이브에서 솔리드 스테이트 드라이브로 변경 했으므로 Windows를 업그레이드해야합니다. 같은 문제가 발생했습니다. 그런 다음 이전 Windows 폴더에서 새로운 Windows 폴더로 debug.keystore 파일을 복사했습니다 windows 폴더 문제가 해결됩니다 :)
— Arslan Sohail

답을 주셔서 감사합니다. 실제로 내 문제를 해결했기 때문에 친구와 프로그래밍하고 있으며이 문제가 자주 발생했습니다. 이제 디버그 키를 공유하고 있으므로 모든 것이 정상입니다.
— Gustavo Magalhães '

5

위의 해결 방법으로 문제가 해결되지 않으면 다음과 같은 작업을 수행했을 수 있습니다.

1) Appstore에서 앱을 설치합니다.
2) 동일한 패키지 이름 업데이트 버전으로 서명 APK로 업데이트하십시오.

APK에는 기본적으로 두 가지 종류가 있습니다.

1) 원래 APK로 알려진 Playstore에 업로드했습니다.
2) 파생 APK로 알려진 playstore에서 다운로드하십시오.

이 경우 기본적으로 파생 된 APK를 다운로드하고 원래 APK로 업데이트합니다.

Google Play 스토어의 내부 테스트 모드에서 새로 업로드 된 서명 된 APK를 올바로 업로드하고 파생 된 APK를 다운로드하여 업데이트 시나리오를 확인하십시오.

여기에 이미지 설명을 입력하십시오



1

디버그 및 릴리스 빌드가 디버깅에 사용한 장치에 설치되지 않는 문제가있었습니다. 새 버전을 설치하려고 할 때 동일한 메시지가 나타납니다. 유일한 해결 방법은 현재 버전을 제거하고 새 버전을 설치하는 것입니다.

안드로이드 스튜디오는 패키지 관리자를 사용하여 설치하면 디버깅을 위해 설치된 버전과 Google Play 또는 다른 외부 소스에서 다운로드 한 버전을 구별 할 수 있도록 설치된 APK를 표시하는 것처럼 보입니다 (이클립스를 사용할 때 나에게 결코 발생하지 않았습니다).


1

응용 프로그램이 성공적으로 제거되지 않았을 수 있습니다. 장치가이 경우이 방법을 시도해보십시오.

먼저 애플리케이션의 패키지 이름 (예 : 'com.xxx.app')을 가져 오면 루트 탐색기를 사용하여 매니페스트 파일에서 찾을 수 있습니다 (RE는 파일을 디코딩 할 수 있음). 그런 다음이 스크립트를 사용하여 제거 할 수 있습니다.

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove

1

동일한 패키지 오류 :

  1. 앱에서 다른 이름으로 새 패키지를 만듭니다.
  2. 이전 패키지의 모든 파일을 복사하여 새 패키지에 붙여 넣습니다.
  3. 코드를 저장하십시오.
  4. 오래된 패키지를 삭제하고 프로젝트를 정리하고 다시 빌드하십시오.

1. 매우 2. 짧음 3. 가능 4. 사용 5. 설명.
— Yunnosch

1

여기에 이미지 설명을 입력하십시오소유자로 로그인하고 설정-> 앱으로 이동 한 다음 모두 탭으로 스 와이프해야했습니다. 이전 버전이 '설치되지 않음'으로 표시되어있는 목록의 맨 끝으로 스크롤하십시오. 그것을 선택하고 오른쪽 상단 모서리에있는 '설정'버튼을 누르고 마지막으로 '모든 사용자를위한 제거'


그것은 나를 위해 일했지만 ... 지금은 내 웹 사이트에서 다운로드 할 때 응용 프로그램이 다운로드되지 않습니다 (적어도 다운로드 폴더로). 오류가보고되지 않았습니다. 그냥 일어나지 않습니다. 휴대 전화를 컴퓨터에 연결하면 APK를 휴대 전화에 복사하고 오류없이 설치할 수 있습니다.
— Ron

0

AndroidManifiest에서 shareId를 변경 / 추가 / 제거 할 때 애플리케이션이 업데이트되지 않는 또 다른 이유가있을 수 있습니다.

"android : sharedUserId"

또한 확인하십시오.

현재 요구 사항이나 현재 요구 사항에도 불구하고 응용 프로그램에서 sharedUserId를 사용하는 것이 좋습니다.


0

위의 모든 것을 시도했지만 작동하지 않았습니다.

앱을 제거했지만 새로운 버전의 앱에도 여전히 동일한 오류가 발생한다는 것을 알았습니다.

이것이 해결 된 것입니다 : 설정-> 일반-> 응용 프로그램 관리자-> 앱 선택-> 상단의 세 점을 클릭하십시오-> 모든 사용자 제거

이 작업을 수행하면 실제로 제거되고 새 버전을 설치할 수있게됩니다.

도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.