서명 된 APK를 기기에 수동으로 설치할 수 없으며 '앱이 설치되지 않음'오류가 발생 함


107

내 앱을 GooglePlay에 공개하고 싶지만 먼저 서명 된 APK로 마지막 테스트를 수행하여 사용 된 모든 API 키가 릴리스 버전 (GMaps, Facebook 등)에서 올바르게 작동하는지 확인하고 싶습니다.

그래서 방금 릴리스 키로 내 앱의 서명 된 버전을 만들었고 앱을 장치에 설치하려고 할 때 오류가 발생했습니다.

여기에 이미지 설명 입력

APK를 기기에 복사하고 apk 설치 앱으로 설치하려고했습니다.

이상한 것은 디버그 서명 키로 동일한 프로세스 수행 할 때 모든 것이 잘되고 앱을 설치하고 실행할 수 있다는 것입니다.

절차 단계는 다음과 같습니다 .

릴리스 키를 선택하고 암호를 입력합니다.

절차 단계는 다음과 같습니다.

내가 할 선택 릴리스 빌드 타입 대신 디버깅을

디버깅 대신 릴리스 빌드 유형을 선택합니다.

내가 또한 gradle 파일에 서명 키를 정의한 경우를 대비 하여 필요한지 모르겠다는 것을 인정해야합니다.

내가 또한 gradle 파일에 서명 키를 정의한 경우를 대비하여 필요한지 모르겠다는 것을 인정해야합니다.

나는 7 7 번 시도 했으므로이 문제는 잘못된 암호 가 아니라 표준 디버그 안드로이드 서명 키를 사용 하여이 작업을 수행 할 수 있다고 가정합니다 .

할 수 있으면 도와주세요.


1
살람. 이 대답은 문제가 해결 될 수 http://stackoverflow.com/a/42745459/1676736
사예드 Abolfazl Fatemi

나는 같은 문제에 직면하고 있습니다. 진짜 이유는 무엇입니까? 알아 냈어? Varhegyi @ 아담
로힛 싱

@RohitSingh 아래 대답, 롤.
Adam Varhegyi

앱이 완전히 제거되지 않았다는 의미입니까? 또는 Android 5.0 (또는 그 이상) 만 해당됩니다.
Rohit Singh

1
@RohitSingh 내 문제는 답이 설명하는 것과 똑 같았습니다. 다른 사용자를 위해 휴대 전화에 앱을 설치했는데 다른 사용자에게는 표시되지 않았습니다. 그래서 내가 "모든 사용자"그것을 제거했다
아담 Varhegyi에게

답변:


81

Android 5.0 이상 기기를 사용 중일 수 있습니다.

설정-> 앱-> 앱을 클릭하십시오. ---> 작업 표시 줄 메뉴의 앱 정보 페이지에는 "모든 사용자를위한 제거"라는 옵션이 있습니다. 앱이 완전히 제거되고 이제 문제없이 새 버전을 설치할 수 있습니다. 이것이 당신을 도울 수 있기를 바랍니다

아래 링크에서 내 솔루션을 확인하십시오.

링크 1

도움이되기를 바랍니다.


도대체 어떻게 그렇게 할 수 있었는지. 작업 btw 감사합니다.
Adam Varhegyi

2
이 링크가 질문에 답할 수 있지만 여기에 답변의 필수 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 무효화 될 수 있습니다.
SOFe jul.

남자는 정말 감사합니다,이 버그를 알아 내기 위해 나에게 일주일했다
디에고 비니에게

기쁘다, 당신을 도왔다 !! @ DiegoVinícius
라구 Swaminathan의

66

현재 Updated Android Studio 2.3사용자에게는 Android 스튜디오가 크게 발전했기 때문에 요즘 Android 개발에 Eclipse를 사용하는 사람이 거의 없기 때문에이 대답은 당신을위한 것입니다.

따라서이 방법을 따라 Signed apk파일 을 만드십시오 .

  1. Build> 생성 Signed apk.
  2. 만듭니다 Keystore path.
  3. 넣어 Password, alias, key password.
  4. Build type그에 따라 선택하십시오 (예 : playstore 사용에서 릴리스 release).
  5. Signature VersionV1V2확인란을 모두 선택합니다.
  6. Finsih.
  7. explorer저장할 apk를 선택한 위치로 이동하면 .apk파일 이름 이 표시 app-release.apk됩니다.

14
선택 서명 V1은 한
Meanman

당신은 시간 내 많은 저장
curiousMind

나를 위해 일하십시오. 시간을 절약 . 감사합니다
YeeKhin 2010 년

5
모두 점검 V1및 것은 V2해결책이었다!
Alex Jolig

1
V1을 확인하면 문제가 해결되었습니다. 이전에는 V2 만 확인되었습니다.
BluJ IT

51

서명 버전 v1과 v2를 모두 선택하면 문제가 해결되었습니다.여기에 이미지 설명 입력


4
이것은 정확히 내 문제였습니다. 왜 우리는 V1 (jar 서명)을 표시해야합니까? 그리고 구글이 우리가 이것을 알기를 어떻게 기대합니까?
A.Alqadomi

필수는 아닙니다. 가능하면 두 확인란을 모두 선택해야하지만 새로운 V2 서명 메커니즘이 문제를 제공하는 경우 문제가 발생하면 둘 다 확인할 수 있습니다.
Shubhamhackz

43

Build> Build APK에서 APK를 생성하는 한 동일한 일이 발생했습니다. 문제없이 몇 번이고 APK를 설치하고 제거 할 수 있었지만 대신 Build> Generate Signed APK를 생성하면 APK를 휴대폰에 전달하고 설치하려고 할 때 하나만 허용되었습니다. 경우에 따라 다음 메시지가 나왔습니다.

여기에 이미지 설명 입력

그때까지 "어떤 방식 으로든 설치"를 선택하면 모든 것이 정상 이었지만 앱을 제거하고 다시 설치하려는 경우 (가능한 시나리오) 다음과 같은 일이 발생했습니다.

여기에 이미지 설명 입력

그래서 플레이 프로텍트를 비활성화하여 문제를 해결했습니다. (Google Play 내에서)> 메뉴> Play 프로텍트> 보안 위협 검색 (비활성화)을 달성했습니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력


이 솔루션은 저에게 효과적입니다. 구글 +1에 의해 또 다른 변화
준비 안드로이드

당신은 내 생명을 구했습니다!
akcoban

왜 이런 일이 발생했는지 말씀해 주시겠습니까? 이 문제를 해결하기 위해 내가 뭘 잘못하고 있습니까?
sparkhead95

16

"앱이 설치되지 않음"은 동일한 패키지가있는 앱이 동일한 기기에 이미 설치된 경우 표시됩니다. 서명 된 apk로 만들기 전에 테스트 목적으로 사용했던 첫 번째 애플리케이션을 삭제하십시오. 작동합니다. 건배!


8
예, 알고 있지만 이전에 설치되지 않았습니다.
Adam Varhegyi

6
현재 앱을 삭제하지 않고 더 높은 버전으로 APK를 설치하려면 어떻게해야합니까?
user7856586

12

서명 버전 v1과 v2를 모두 선택하면 문제가 해결됩니다.

여기에 이미지 설명 입력

v1 체계

JAR 파일은 명령 줄 jarsigner 도구를 사용하거나 java.security API를 통해 직접 서명 할 수 있습니다. META-INF 디렉토리의 비 서명 관련 파일을 포함한 모든 파일 항목은 JAR 파일이 jarsigner 도구로 서명 된 경우 서명됩니다. 서명 된 JAR 파일에 서명 된 모든 파일 항목에 대해 매니페스트에 아직 존재하지 않는 한 개별 매니페스트 항목이 생성됩니다.

V2 체계

v1 서명은 ZIP 메타 데이터와 같은 APK의 일부 부분을 보호하지 않습니다. APK 검증 도구는 신뢰할 수없는 (아직 확인되지 않은) 데이터 구조를 많이 처리 한 다음 서명에 포함되지 않은 데이터를 폐기해야합니다. 이것은 상당한 공격 표면을 제공합니다. 또한 APK 검증 도구는 압축 된 모든 항목의 압축을 해제해야하므로 더 많은 시간과 메모리가 소비됩니다. 이러한 문제를 해결하기 위해 Android 7.0은 APK 서명 체계 v2를 도입했습니다.

기본적으로 Android Studio 2.2 및 Gradle 2.2 용 Android 플러그인은 APK 서명 체계 v2와 JAR 서명을 사용하는 기존 서명 체계를 모두 사용하여 앱에 서명합니다.

APK 서명 체계 v2를 사용하는 것이 좋지만 필수는 아닙니다. 세부 사항을보십시오


10

Android Studio 3.0 이상

여기에 설명 된대로

참고 : 실행 버튼은 testOnly = "true"로 APK를 빌드합니다. 즉, APK는 adb (Android 스튜디오에서 사용)를 통해서만 설치할 수 있습니다. 사람들이 adb없이 설치할 수있는 디버그 가능한 APK를 원하는 경우 디버그 변형을 선택하고 Build Bundle (s) / APK (s)> Build APK (s)를 클릭합니다.

AndroidManifest.xml의android:testOnly="false" 내부 애플리케이션 태그 추가

참조 : https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


7

위의 shubham soni 대답이 나를 위해 작동합니다. 실제로 그것은 안드로이드 버전> = 5.0에서 발생합니다. 위에서 APK를 만드는 동안 이것을 사용할 수 있습니다 여기에 이미지 설명 입력...


1
왜이 중복 된 대답입니까?
sziraqui

@sziraqui : Subhankar soni는 왜 "서명 된 apk를 장치에 수동으로 설치할 수없고,"앱이 설치되지 않았습니다 "라는 오류가 발생했습니다. 위에서 언급 한대로 OS 버전과 관련된 동일한 문제에 직면했습니다. 따라서 더 나은 이해를 위해 언급했습니다. 내 대답에 문제가 있습니까?. 안드로이드 버전 <= 5.0의 경우 두 서명 버전 확인란을 표시하지 않고 동일한 APK를 설치할 수 있습니다.
Amit raj

귀하의 답변은 원래 답변에 한 점만 더 추가하는 것이므로 주석이어야합니다. 이것을 답변으로 게시하는 경우 android 5.0에 대한 귀하의 주장을 뒷받침하는 일종의 인용문을 추가해야합니다. 문제가 실제로 Android 버전이 아닌 Android IDE와 관련이 있다면 어떻게 하시겠습니까?
sziraqui

감사합니다. 답변의 그림을 통해 V1 및 V2 서명을 모두 사용할 수있는 아이디어를 얻었습니다. 이전에는 V1 만 사용했습니다
jasxir

6

여기에서이 문제를 해결했습니다.

이 문제의 원인은 이미 동일한 패키지 이름을 가진 응용 프로그램이 휴대폰에 있지만 휴대폰 메뉴에서 찾을 수 없기 때문입니다 (U는 이미 제거했지만 실제로 휴대폰에 있음).

애플리케이션을 보려면 휴대폰 설정 -> 앱으로 이동하십시오 . 거기에서 응용 프로그램을 볼 수 있지만 그 안에서 UNINSTALL 버튼이 비활성화 될 수 있습니다. 모든 사용자를위한 제거 를 보려면 메뉴 오버플로 버튼을 클릭하십시오 .

모든 사용자에 대해 제거를 수행 한 후 서명 된 APK를 성공적으로 설치했습니다. adb를 사용하여 전화에서 앱을 제거 할 수도 있습니다.

adb uninstall package name

이 외에도 모바일이 여러 사용자지원하는 경우 각 앱이 다른 사용자를 위해 설치되지 않았는지 확인하십시오. 다른 사람을 위해 설치된 경우 먼저 이전 앱을 제거하고 다시 시도하십시오.


4

꽤 오래된 질문이지만 내 해결책은 build.gradle 에서 versionCode (증가) 를 변경하는 것이 었습니다.


4

Build.Gradle (module : app)으로 이동합니다.

이것을 사용하십시오 -minifyEnabled false



3

외부 SD 카드 저장소에서 APK 파일을 실행했기 때문일 수 있습니다. APK 파일을 내부 저장소에 복사하면 문제가 해결됩니다.


1

이것은 서명 버전을 선택했기 때문에 발생할 수 있습니다. 일부 전화기에서는 서명 버전이 V2로 선택되면 설치 오류가 발생합니다. 따라서 그런 경우 V1을 선택하면 확실히 작동합니다.


1

오늘도 같은 문제에 직면했습니다. "새로운"Google Play 서명으로 내 apk에 서명 한 것을 기억했습니다.


여기에 이미지 설명 입력


Google Play 서명으로 애플리케이션에 서명했는지 확인하세요.

그랬다면 :

  • 일반적으로 애플리케이션을 업데이트 할 때처럼 APK를 Google 콘솔에 업로드하여 업데이트를 설치합니다.

여기에 이미지 설명 입력


  • 성공적으로 업로드되면 Artifact library메뉴에서를 엽니 다 .
  • 방금 업로드 한 APK가 표시됩니다.
  • 다운로드 버튼을 누르고를 선택 Download derived APK합니다.

이제 apk를 설치할 수 있습니다.


0

Android Studio 버전이 3.0 이상인 경우

build-> output-> apk 폴더에서 기기를 실행 한 후 apk를 직접 사용할 수없는 것 같습니다.

Android Studio 3.0으로 업그레이드 한 후 Build-> Build Apk (s)로 이동 한 다음 빌드-> 출력-> apk-> debug에서 apk를 복사해야합니다.

여기에 이미지 설명 입력


이 질문의 제목- "Cannot install signed apk". 디버그 apk를 언급하고 있습니다.
KRK

0

File> Project Structure> Build Variants> Select release> Make sure 'Signing Config'is empty> if it is selected from the drop window $signingConfigs.release

Android Studio 3.1.4에서이 작업을 수행했으며 위의 릴리스 APK 및 릴리스 키를 만들고 앱 gradle에 정보를 추가하는 모든 단계를 수행 한 후 릴리스 APK를 만들 수있었습니다. 건배!


$signingConfigs.release사용할 수 없습니다 만 $signingConfigs.debug사용할 수 있습니다.
KRK

그런 다음 Build> Generate APK> Select APK로 이동하여 지침을 따릅니다.
Treewallie

0

내 안드로이드 응용 프로그램에서 같은 문제에 직면했습니다. 일부 라이브러리를 업데이트 한 다음 서명 APK를 생성했습니다. 이제 그 일.


0

앱에 Google Play 앱 서명 이 사용 설정 되어있는 경우 Google Play 버전을 제거 할 필요가 없습니다 . 다음 단계를 따르세요.
1. 출시 키로 앱의 서명 된 버전을 만듭니다.
2. Google Play 개발자 콘솔로 이동합니다
. 3. 앱의 새 서명 버전으로 비공개 트랙 릴리스 (알파 또는 베타 릴리스)를 만듭니다.
4. 이제 Google Play 앱 서명으로 서명 한 APK를 다운로드 하고 파생 된 APK를 선택할 수 있습니다.여기에 이미지 설명 입력

  1. 다운로드 한 파생 APK 설치

그 이유는 Google Play 앱 서명이 Play 스토어에서 앱을 설치하고 휴대 전화에서 새 출시 버전 앱 (Android Studio에서 생성)을 테스트하려는 경우 '앱이 설치되지 않음'이라는 다른 키로 앱 출시에 서명하기 때문입니다. 이전 버전과 새 버전이 두 개의 다른 키로 서명 되었기 때문에 발생합니다. 하나는 Google Play 앱 서명을 사용 하고 다른 하나는 사용자 키를 사용합니다.


0

android:testOnly="true"AndroidManifest.xml에서 속성 제거가 작동했습니다. 링크


0

기기에서 디버그 앱을 제거하거나 버전 코드를 올려이 문제를 해결하세요.


0

제 경우에는 서명 된 APK 설치를 테스트하려고했는데 기기에 현재 설치된 버전이 서명되지 않았습니다 (Android 스튜디오에서 직접 디버그 버전 빌드).


0

뻔하지 만 그래도 알아 내기 어려웠어요

모바일 기기에 APK를 설치하기에 충분한 공간이 있는지 확인하세요. 가득 차 있지 않습니다.

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