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.