Android 앱 업로드 키 .keystore 만들기 및 관리 정보

Android 서명 파일 (keystore)에 대한 개인 요약.

keystore란?



이번 작성하는 keystore 파일은 업로드 키라고 불리는 것.

업로드 키: Google Play 앱 서명을 위해 업로드하기 전에 App Bundle 또는 APK에 서명하는 데 사용하는 키입니다. 업로드 키는 비공개여야 합니다.

공식 - 앱에 서명

비공개로 해야 하기 때문에, 안드로이드 프로젝트 디렉토리 아래에 두고 있으면, 실수로 GitHub에 푸시해 버리거나와 위험한 향기가 됩니다.

따라서 로컬 ( /Users/user/.gradle )에 저장하고 앱을 빌드 할 때도 거기에서 참조하도록 설정합니다.

환경


  • Windows 10 Pro

  • 절차



    /Users/user/.gradle/gradle.properties에 경로 작성



    미리 Keys.repo 라는 이름으로 경로를 정의합니다 (이름은 선택 사항).gradle.properties가 없으면 작성하십시오.

    /Users/user/.gradle/gradle.properties
    Keys.repo='/Users/user/.signing'
    

    .gradle/.signing 폴더 만들기



    패스워드등을 기술한 projectname.properties (을)를 포함하기 위해(때문에), .signing 라고 하는 디렉토리를 작성합니다 ( projectname 부분은 임의).
    또한 바로 아래에 keystore 를 저장할 디렉토리를 만듭니다.
    $ mkdir .gradle/.signing
    $ New-Item -Type File projectname.properties # touchと同じ
    $ mkdir .gradle/.signing/YourProjectName # keystoreを格納。名前は任意
    

    keystore 파일 생성



    Android Studio를 시작하고 Build -> Generate Signed Bundle/APK를 클릭합니다.



    선택은 APK나 Bundle이든 둘 다 상관없는 것 같습니다.
    이번에는 APK를 선택하고 다음을 클릭합니다.

    그런 다음 Create new...를 클릭하여 keystore를 만들 위치를 지정합니다.



    keystore는 작성하면 .signing 로 이동시키기 때문에, 프로젝트 루트 바로 아래 등 적당한 장소에서 상관하지 않습니다.
    파일 이름은 release.keystore로 둡니다.



    암호를 설정하고 Certificate의 적어도 하나의 상자에 입력한 후 확인을 클릭합니다.
    그렇다면 다음을 클릭하고 다음 화면에서 마침을 클릭하면 지정된 디렉토리에 release.keystore가 생성됩니다.

    keystore를 .signing/YourProjectName으로 이동


    release.keystore.signing/YourProjectName 디렉토리로 변경합니다.
    $ mv ProjectRoot/release.keystore /Users/user/.gradle/.signing/YourProjectName
    

    암호를 projectname.properties에 작성


    release.keystore 를 작성할 때 설정한 패스워드 등을 .signing/projectname.properties 에 기술합니다.

    .signing/projectname.properties
    RELEASE_STORE_FILE=/YourProjectName/release.keystore
    RELEASE_STORE_PASS=xxxxx
    RELEASE_ALIAS=xxxxx
    RELEASE_KEY_PASS=xxxxx
    

    build.gradle에 서명된 빌드에 대한 코드 작성



    app 레벨 build.gradle 의 android 블록에 signingConfig 를 기술합니다.

    앱 레벨 build.gradle
    android {
      signingConfigs {
        debug {}
        release {
          if (project.hasProperty("Keys.repo")) {
            def projectPropsFile = file(project.property("Keys.repo") + "/projectname.properties")
            if (projectPropsFile.exists()) {
              Properties props = new Properties()
              props.load(new FileInputStream(projectPropsFile))
    
              storeFile file(file(project.property("Keys.repo") + props['RELEASE_STORE_FILE']))
              storePassword props['RELEASE_STORE_PASS']
              keyAlias props['RELEASE_ALIAS']
              keyPassword props['RELEASE_KEY_PASS']
            }
          } else {
            println "======================================================="
            println "[ERROR] - Please configure release-compilation environment - e.g. in ~/.signing  directory"
            println "======================================================="
          }
        }
      }
    }
    

    이상입니다.

    참고



    거의 번역처.

    gradle set absolute path value for a keystore file

    그 밖에도 쓰는 방법 여러가지.

    Android Studio(Gradle)에서 apk 파일을 만들 때 storePassword/keyAlias/keyPassword의 지정 방법을 몇 가지 검증해 보았다.

    좋은 웹페이지 즐겨찾기