0

나는 안드로이드 세계에 아주 익숙하며 휴대 전화에서 간단한 hello world 앱을 실행하려고했습니다. 내가 이것을 시도했을 때 나는 안드로이드 스튜디오에 의해 생성 된 APK가 서명되지 않은 것을 배웠다. 따라서 서명하려면 키 저장소를 만든 다음 개인 키, 별칭을 만드는 과정을 거쳤으며 APK에 서명하고 내 전화에 설치하고 실행하는 데 성공했습니다.Android 스튜디오 - 서명 구성을 그라데이션에 추가하기

그런 다음 새로 생성 된 키 저장소 파일을 사용하여 릴리스에 자동으로 서명하기 위해 서명 구성을 gradle에 추가하기 위해 을 거쳤습니다. 나는 제대로 단계 n은 위의 링크를 따라하고 아무것도 놓치지 않았다하지만 난 내 서명 구성을 완료 할 때 여전히 오류

Gradle project sync failed.Basic functionality(eg. editing, debugging) will not work properly.

Error:(19, 0) Could not find property 'config' on SigningConfig container.

나는 놀라게 찍은 말하고있다! 이제는 수동으로 APK에 서명 할 수 없습니다. 이제 수동으로 서명하려고 할 때 그레이도가 이 아닌 것 같습니다.

이 파일은이 오류를 해결하는 데 도움이 될 것입니다. 프로젝트의 build.gradle. 나는 서명 구성을 만드는 동안 Android Studio UI를 통해 구성한 것과 동일하다는 점을 이해하려고합니다.

apply plugin: 'com.android.application' 

android { 
    signingConfigs { 
     release { 
      storeFile file("<path>\\firstKeystore.jks") 
      storePassword "******" 
      keyAlias "usual password" 
      keyPassword "******" 
     } 
    } 
    compileSdkVersion 19 
    buildToolsVersion '20.0.0' 
    defaultConfig { 
     applicationId 'com.tech.vasanth.newsfeed' 
     minSdkVersion 19 
     targetSdkVersion 19 
     versionCode 1 
     versionName '1.0' 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      signingConfig signingConfigs.config 
      debuggable false 
      jniDebugBuild false 
      renderscriptDebugBuild false 
      zipAlign true 
     } 
     debug { 
      signingConfig signingConfigs.config 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

답변

1

buildTypes.release 블록에 실수가 있습니다. 서명의 설정은 다음과 같아야합니다

signingConfig signingConfigs.release 

주,이 위의 signingConfigs 블록의 구성을 명명하는 방법입니다.

buildTypes.debug 블록에 서명 구성을 남기거나 (실제로 원하는 경우 위와 같이 설정하십시오).

+0

제안 사항을 변경 한 후 buildTypes.debug signingConfig signingConfigs.config에서이 줄에 오류가 표시됩니다. 이것을 제거 할 수 있습니까? –

+0

예, 제가 이미 대답 한대로. – Henry

+0

오, 그래 .. 고마워, 효과가 있었어! 내가 알고 싶은 한 가지는 바로 위에 링크를 제공 했습니까? 스튜디오 UI를 사용하여 서명 구성을 구성했습니다. 그래서 대신 build.gradle을 구성하여이 작업을 수행 할 수 있습니까? 둘 다 하나이고 똑같습니까? –

0

디버그/릴리스에는 아래의 구성이 사용되었습니다.

signingConfigs { 
      release { 
       keyAlias 'keyAlias' 
       keyPassword 'keyPassword' 
       storePassword 'storePassword' 
       storeFile file("${rootDir}/keystores/app.keystore") 
      } 

      debug { 
       storeFile file("${rootDir}/keystores/debug.keystore") 
       keyAlias 'androiddebugkey' 
       keyPassword 'android' 
       storePassword 'android' 
      } 
     } 

방출 모듈을 정의하는 동안 :

buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'other-rules.pro' 
      signingConfig signingConfigs.release 
     } 
     debug { 
      signingConfig signingConfigs.debug 
     } 
    } 

참고 : 여기rootDir 프로젝트 루트 디렉토리입니다. 위의 디렉토리에 키 스토어를 저장하십시오.