Programing

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

lottogame 2020. 8. 29. 11:49
반응형

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


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

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

여기에 이미지 설명 입력

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

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

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

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

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

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

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

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

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

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

할 수 있으면 도와주세요.


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

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

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

링크 1

도움이되기를 바랍니다.


현재 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됩니다.

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


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

여기에 이미지 설명 입력

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

여기에 이미지 설명 입력

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

여기에 이미지 설명 입력

여기에 이미지 설명 입력


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


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

여기에 이미지 설명 입력

v1 체계

JAR 파일은 명령 줄 jarsigner 도구를 사용하거나 java.security API를 통해 직접 서명 할 수 있습니다. JAR 파일이 jarsigner 도구로 서명 된 경우 META-INF 디렉토리의 비 서명 관련 파일을 포함한 모든 파일 항목이 서명됩니다. 서명 된 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를 사용하는 것이 좋지만 필수는 아닙니다. 세부 사항을보십시오


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


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

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

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

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

adb uninstall package name

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


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


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


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

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


minifyEnabled false

모든 포럼에서 3 일 동안 연구 한 후 저에게 도움이 된 유일한 제품입니다!


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


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


Android Studio 버전이 3.0 이상인 경우

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

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

여기에 이미지 설명 입력


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를 만들 수있었습니다. 건배!


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


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


여기에 이미지 설명 입력


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

그랬다면 :

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

여기에 이미지 설명 입력


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

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

참고 URL : https://stackoverflow.com/questions/34265897/cannot-install-signed-apk-to-device-manually-got-error-app-not-installed

반응형