업데이트 된 APK를 수동으로 설치하면 '서명이 이전에 설치 한 버전과 일치하지 않습니다'와 함께 실패합니다.


81

친구들과 공유 할 수있는 어리석은 앱을 만들었습니다. 앱 스토어에 올릴 필요가 없습니다.

나는 첫 번째 apk(서명)를 구축하고 웹 서버에 업로드했으며 모두 잘 작동했습니다.

작은 문제가 발생하여 문제를 수정하고 다시 빌드하고 동일한 키 저장소로 서명 한 다음 다시 업로드했습니다. 이제 새 .NET에서 설치할 수없는 것 같습니다 apk. 디버거가 알려줍니다.

signatures do not match the previously installed version

그래서 앱 서랍을 열고 "제거"버튼으로 드래그하여 이전 버전을 제거했습니다. "설정-> 앱"을 열면 더 이상 보이지 않습니다. 내 기기에서 앱 흔적이 보이지 않습니다.

그러나 여전히 위의 오류 메시지가 나타납니다.

그것은 가능 일부 정보는 여전히 장치 어딘가에에 남아? 확인할 수있는 방법이 있습니까?


답변:


166

예 이전 애플리케이션이 100 % 제거되지 않았거나 데이터가 제거되지 않은 경우 가능합니다.

시험:

adb uninstall "com.yourapp.yourapp"

"com.yourapp.yourapp"을 대체 할 내용을 정확히 모르는 경우 Android 스튜디오를 열고 기기에 연결된 상태에서 앱을 실행 한 다음 디버그 창을 확인하세요.

그것은 말한다 :

 Waiting for device.
 Target device: samsung-sm_t531-xxxxxxxxx
 Uploading file
 local path: C:\Users\myapp\app\build\outputs\apk\myapp.apk
 remote path: /data/local/tmp/com.myapp.myapp
 Installing com.myapp.myapp
 DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.myapp.myapp"
 pkg: /data/local/tmp/com.myapp.myapp
 Success

이 경우 com.myapp.myapp은 설치 제거에 사용해야하는 패키지의 이름입니다.


1
이것이 실제로 문제였습니다. Android Studio에서 직접 전화로 한 번 배포했습니다. 이 버전이 제대로 제거되지 않은 것 같습니다. 마지막 질문 : Android Studio에서이 작업을 수행 할 수있는 방법이 있습니까? 아니면 거기에서 직접 adb를 실행 하시겠습니까?
exhuma

예, Android 앱에서 쉘 명령을 실행하는 방법을 배우십시오. :이 스레드는 좋은 출발점이다 stackoverflow.com/questions/20932102/...
에산

아니, 아니. 내 앱에서 명령을 실행하지 않음;) adb"Android Studio"에서 직접 실행할 수 있는지 궁금합니다 .
exhuma

2
이것은 개발자 일 때 유용합니다.하지만 최종 사용자의 경우 동일한 문제가 발생하면 다음을 수행해야합니다. 문제는 Android의 최신 버전에서 제거하면 특정 사용자에 대해서만 제거된다는 것입니다. 정답은 설정> 앱> 특정 앱 내부로 이동 한 다음 오른쪽 상단의 "..."메뉴 항목에서 "모든 사용자에 대해 제거"를 선택하는 것입니다.
AnkitRox

내가 패키지 이름을 변경했기 때문에 나에게 일어났다. 제거 트릭했다
남자 Sopher

23

나는 같은 문제가 있었고 adb uninstall해결책이 효과가 없었습니다.

효과가 있었던 것은

  • 기기에서 설정-> 앱으로 이동합니다.
  • 앱을 선택하고 메뉴에서 "모든 사용자에 대해 제거"를 선택합니다.

이전에 앱을 제거한 경우에도 여전히 목록에 있습니다.


예, 기기에 여러 사용자 계정이 있고 앱이 둘 이상에 설치된 경우에도 발생할 수 있습니다. 한 사용자에 대해 제거하면 해당 계정에서만 "연결 해제"됩니다. 그러나 디스크에 남아 있습니다. 각 사용자가 제거했을 때만 완전히 제거됩니다.
exhuma

1
"모든 사용자를위한 제거"가 완벽하게 작동했습니다. 제거 된 다른 모든 사용자)))
Inoy

에뮬레이터 픽셀 3 29
Julie Pixie

6

나에게 앱이 배포 될 예정이라면 adb해결책은 안된다. 친구에게 안드로이드 sdk를 설치해달라고 요청할 수 없다!

여기로 이동하는 방법 은 태그 (루트 요소) 에서 속성 을 편집하고 AndroidManifest.xml증가시키는 android:versionCode것입니다 <manifest>.

이것은 설치된 응용 프로그램을 업데이트합니다


1
이 문제는 실제로 개발 중에 Android 스튜디오를 통해 기기에 앱을 설치했기 때문에 발생했습니다. 새 APK를 다시 빌드하고 배포하는 것은 저를 제외한 모든 사람에게 완벽했습니다. 그래서 adb 솔루션은 괜찮 았습니다.
exhuma

4

연결된 테스트를 수행하는 동안이 메시지가 표시되는 경우 adb를 통해 제거 할 때 .test 를 포함해야합니다. 앱을 통한 제거-> 설정 테스트 패키지를 제거 하지 않기 때문입니다.

adb uninstall your.broken.package.test

다음을 통해 제거하는 경우

adb uninstall your.broken.package

테스트 패키지는 그대로 유지됩니다. 이것은 gradle 명령 줄을 사용하는 동안 내가 발견 한 것 뿐이며 Android 스튜디오 내 에서이 문제를 발견하지 못했습니다.


3

휴대폰이나 에뮬레이터에서 이전 앱을 제거하고 다시 실행 해보십시오.


이것은 대답이 아닙니다. 그래서 그는 이미 이것을 시도했으며 문제는 여전히 존재한다고 말했습니다.
BenRoob

1

인증서에 서명하는 동안 릴리스를 설치하는 동안 오류가 발생했습니다.

: app Gradle 작업 uninstallRelease로 수정 한 다음 다시 installRelease


0

이 질문에 대한 Unity 사용자의 경우 가장 좋은 답변은 실제로 @Ehsan의 답변입니다.

adb uninstall "com.yourapp.yourapp"

Android 기기에 이미 이전 버전을 설치 한 다음 Development BuildUnity> Build Settings에서 선택 하여 APK가 다른 서명을 사용하도록했습니다. Android GUI를 통해 설치하는 경우 실제로 모든 항목이 제거되지 않으므로 ADB를 사용해야합니다.

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