sourcetip

앱 릴리스 미서명의pk가 서명되지 않았습니다.

fileupload 2023. 8. 11. 22:32
반응형

앱 릴리스 미서명의pk가 서명되지 않았습니다.

github에 Android 앱의 zip 파일을 다운로드하여 실행하려고 하는데 이 메시지와 함께 대화 상자가 표시됩니다.

app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.

안드로이드 스튜디오를 사용하고 있습니다.내가 어떻게 해야 합니까?

Android Studio를 사용하여 릴리스 빌드를 디버그하려면 다음 단계를 수행합니다.

  1. 빌드 변형을 릴리스 모드로 설정합니다.

enter image description here

  1. 왼쪽 탐색 창에서 앱을 마우스 오른쪽 버튼으로 클릭하고 모듈 설정 열기를 클릭합니다.

  2. 서명 탭으로 이동합니다.서명 구성을 추가하고 정보를 입력합니다.키 체인도 선택합니다.

enter image description here

  1. 빌드 유형 탭으로 이동합니다.해제 모드를 선택하고 다음을 설정합니다.

-디버깅이 가능합니다.

- 구성에 구성 서명(방금 작성한 파일).

enter image description here

그라들을 동기화합니다.맛있게 드세요!

Android Studio에서 빌드 버전이 디버그(해제되지 않음)로 설정되어 있는지 확인합니다(빌드 버전 패널 확인).

디버깅으로 설정된 경우 빌드 스크립트를 편집하지 않고 자동으로 생성된 디버그 키 저장소로 앱에 서명해야 합니다.

그러나 릴리스할 특정 키 저장소를 만들고 구성해야 합니다.

디버그 및 릴리스 모드에 대한 공식 문서: https://developer.android.com/tools/publishing/app-signing.html

항상 다음과 같은 build.gradle DSL 스크립트를 사용하여 빌드에 서명합니다.

    android {
    signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }

        myConfig {
            storeFile file("other.keystore")
            storePassword "android"
            keyAlias "androidotherkey"
            keyPassword "android"
        }
    }

    buildTypes {
        bar {
            debuggable true
            jniDebugBuild true
            signingConfig signingConfigs.debug
        }
        foo {
            debuggable false
            jniDebugBuild false
            signingConfig signingConfigs.myConfig
        }
    }
}

Android Studio와 관련된 Gradle 빌드 시스템에 대해 조금 더 알고 싶다면 다음 사이트를 방문하십시오.

Gradle 플러그인 사용자 가이드

Android Studio 3.5를 사용하여 별도의 빌드 버전을 디버깅하고 릴리스하려면 다음 단계를 수행하십시오. 1.빌드 변형을 릴리스 모드로 설정합니다.

Build Variant

  1. 파일로 이동 >> 프로젝트 구조
  2. 모듈을 선택한 다음 구성에 서명
  3. Signing Config(서명 구성) 아래의 Plus(플러스) 아이콘 클릭

Signing Config

  1. 릴리스 섹션과 릴리스 앱 정보 제공을 선택한 다음 적용 및 확인을 선택합니다.

signin

  1. 레벨로 »build.gradle그리고 당신의 것을 바꾸세요.buildTypes> 아래 스크린샷과 같은 "릴리스" 섹션.

final

그런 다음 프로젝트를 실행합니다.해피 코딩.

서명된 APK를 성공적으로 디버깅할 수 있었습니다. 다음 절차를 따르십시오.

  1. "Build Variant" 도구 모음에서 "release" 버전 선택
  2. Build.gradle 세트의 debuggable true 유형의 에는 다음과 같이 .
  3. 파일로 이동 ->프로젝트 구조 ->서명 탭 아래에 모든 정보 입력 ->맛 탭 아래에 ->서명 구성 방금 만든 것 선택
  4. 중단점 설정
  5. 디버그 모드에서 응용 프로그램 실행

그라들 코틀린슬용

signingConfigs {
    create("releaseConfig") {
        storeFile = file("your keystore file path")
        storePassword = "storePassword"
        keyAlias = "keyAlias"
        keyPassword = "keyPassword"
    }
}
buildTypes {
    getByName("release") {
        signingConfig = signingConfigs.getByName("releaseConfig")
        isMinifyEnabled = true
        isShrinkResources = true
        proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
    }
}

signingConfigs는 빌드 전이어야 합니다.종류들

signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }

        myConfig {
            storeFile file("other.keystore")
            storePassword "android"
            keyAlias "androidotherkey"
            keyPassword "android"
        }
    }

    buildTypes {
        bar {
            debuggable true
            jniDebugBuild true
            signingConfig signingConfigs.debug
        }
        foo {
            debuggable false
            jniDebugBuild false
            signingConfig signingConfigs.myConfig
        }
    }

디버깅 모드에서 앱을 실행하려면

왼쪽 하단을 보십시오. 즐겨찾기 에 빌드 변형이 있습니다.

변형 빌드를 클릭합니다.릴리스를 클릭하고 debug를 선택합니다.

완벽하게 작동합니다!!!

다운로드한 앱 프로젝트는 build.gradle 파일에 서명된 정보를 포함할 수 있습니다.다음과 같은 코드가 표시된 경우:

buildTypes {
    debug {
        signingConfig signingConfigs.release
    }
    release {
        signingConfig signingConfigs.release
    }
}

삭제하고 다시 시도할 수 있습니다.

제 문제는 스테판이 제안한 대로 빌드 변형을 변경함으로써 해결되었습니다. 만약 제가 여기서 했던 것처럼 "빌드 변형"을 찾는 데 어려움을 겪고 있는 사람이 있다면 여기 스크린샷이 있습니다.

enter image description here

보안상의 이유로 Android에는 서명되지 않은 apk를 설치할 수 없습니다.따라서 서명되지 않은 apk만 가지고 있다면 서명해야 합니다.이를 수행하는 방법은 다음과 같습니다. 링크

자체 서명된 인증서로 apk에 서명할 수 있습니다.

대안은 다음 중 하나일 수 있습니다.

  • 가능한 경우 서명된 apk를 다운로드합니다.
  • 소스를 다운로드하려면 컴파일하십시오(Android-Studio 또는 Gradle 또는 ... 사용).여러 개의 앱이 생성되고 그 중 하나가 디버그 키로 서명됩니다(그래서 당신은 디버그 키를 설치할 수 있을 것입니다)

내가 이걸 해결한 방법

이 오류는 빌드 변형을 릴리스 모드로 설정했기 때문에 발생합니다.빌드 모드로 설정하고 프로젝트를 다시 실행합니다.

릴리스 모드에서 실행하려면 앱을 릴리스할 때 일반적으로 수행하는 방식으로 서명된 apk를 생성하면 됩니다.

도구 창 모음에서 빌드 변형을 선택합니다. 빌드 변형을 릴리스에서 디버그로 변경합니다.

제 해결책은 서명 구성의 이름을 기본 "config"에서 "debug"로 변경하는 것이었습니다.확인하기 위해 다른 임의의 이름으로 변경했다가 다시 오류가 발생하고 다시 "디버그"로 변경하면 오류가 사라집니다.그래서 이것이 인위적인 것처럼 보이고 저는 이것이 전부라고 믿지 않는 경향이 있지만, 이 해결책을 시도해 보세요.

나 또한 이 문제가 나타나고, 나의 코드는 아래와 같습니다.

        storeFile file(properties.getProperty("filepath"))
        storePassword properties.getProperty("keypassword")
        keyAlias properties.getProperty("keyAlias")
        keyPassword properties.getProperty("keypassword")

속성 이름 오류 때문입니다. 키 암호가 아니라 keyPassword여야 합니다.

마침내 저에게 효과가 있었던 것은, 왜 그런지는 모르겠지만, 다음과 같습니다.

  • LastPass(모든 암호를 유지하기 위해 사용하는 서비스)로 이동했습니다.
  • 암호 위에 커서를 놓고 두 번 클릭하여 내 암호 선택
  • 선택하면 cmd C를 눌러 복사합니다.
  • Android 스터디에 가서 cmdV를 붙여넣었습니다.

암호 끝을 클릭하여 암호를 선택하고 마우스를 움직여 암호를 선택하여 여러 번 복사하려고 했습니다.

이상하지만 비밀번호 위를 더블 클릭해서 복사하는 것만으로 작동했습니다.

또한 오픈 모듈 설정 > 서명을 사용했습니다.이 게시물에 @NightFury가 설명한 방법.

build.gradel 파일에 아래 줄의 코드를 추가합니다. build에서 추가합니다.그림과 같이 릴리스 아래의 블록을 유형합니다.

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        applicationIdSuffix ".debug"
        debuggable true
    }

언급URL : https://stackoverflow.com/questions/25001479/app-release-unsigned-apk-is-not-signed

반응형