Google Play 앱 서명을 활성화하는 방법


113

많은 개발자들이 Google I / O 2017에서 선보인 새로운 Google Play 앱 서명 기능에 대해 자세히 알아 보려고합니다.

Google Play 내에서 앱에 서명하기 위해 키 저장소를 저장하는 기능은 키 저장소를 안전하게 저장하려는 노력을 줄여주고 시스템이 하드웨어 및 OS 특성에 따라 모든 기기에 제공되는 APK를 최적화하는 데 도움이 될 수 있습니다.

이 주제에 대한 자세한 내용은 https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing 공식 문서에서 읽을 수 있습니다 .

다음 답변을 통해 원본 키 저장소를 업로드하기 위해 따라야하는 단계와이 시점부터 APK에 서명해야하는 새 업로드 키 저장소를 만드는 방법을 좀 더 자세히 설명하겠습니다.

답변:


189

이 가이드는 이미 Play 스토어에 애플리케이션이있는 개발자를 대상으로합니다. 새 앱으로 시작하는 경우 프로세스가 훨씬 더 쉽고 여기 에서 "새 앱"단락의 지침을 따를 수 있습니다.

99 %의 개발자가 이미 가지고있는 전제 조건 :

  1. 안드로이드 스튜디오

  2. JDK 8 및 설치 후에는 터미널 명령을 단순화하기 위해 사용자 공간에 환경 변수를 설정해야합니다. Windows x64에서는 다음 C:\Program Files\Java\{JDK_VERSION}\binPath환경 변수 에 추가해야 합니다. (이 작업을 수행하는 방법을 모르는 경우 Windows 10 Path환경 변수에 폴더를 추가하기위한 내 가이드를 읽을 수 있습니다 .)

0 단계 : Google Play 개발자 콘솔을 연 다음 출시 관리-> 앱 서명으로 이동 합니다.

여기에 이미지 설명 입력

앱 서명 TOS에 동의합니다.

여기에 이미지 설명 입력

1 단계 : 아래 이미지와 동일한 버튼을 클릭하여 PEPK 도구를 다운로드합니다.

여기에 이미지 설명 입력

2 단계 : 터미널을 열고 다음을 입력합니다.

java -jar PATH_TO_PEPK --keystore = PATH_TO_KEYSTORE --alias = ALIAS_YOU_USE_TO_SIGN_APK --output = PATH_TO_OUTPUT_FILE --encryptionkey = GOOGLE_ENCRYPTION_KEY

전설:

  • PATH_TO_PEPK = 1 단계 에서 다운로드 한 pepk.jar의 경로 C:\Users\YourName\Downloads\pepk.jar는 Windows 사용자 와 유사 할 수 있습니다 .
  • PATH_TO_KEYSTORE = 출시 APK에 서명하는 데 사용하는 키 저장소의 경로입니다. * .keystore 또는 * .jks 유형의 파일이거나 확장자가없는 파일 일 수 있습니다. 같은 뭔가 C:\Android\mykeystore또는 C:\Android\mykeystore.keystore등 ...
  • ALIAS_YOU_USE_TO_SIGN_APK = 출시 APK에 서명하는 데 사용하는 별칭의 이름입니다.
  • PATH_TO_OUTPUT_FILE = 확장자가 .pem 인 출력 파일의 경로입니다.C:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY =이 암호화 키는 항상 동일해야합니다. 앱 서명 페이지에서 찾아 복사하여 붙여 넣을 수 있습니다. 다음 형식이어야합니다.eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

예:

java -jar "C : \ Users \ YourName \ Downloads \ pepk.jar"--keystore = "C : \ Android \ mykeystore"--alias = myalias --output = "C : \ Android \ private_key.pem"- encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Enter를 누르면 순서대로 제공해야합니다.

  1. 키 저장소 비밀번호
  2. 별칭 비밀번호

모든 것이 정상이면 PATH_TO_OUTPUT_FILE 폴더에 private_key.pem.

3 단계 : 아래 이미지와 동일한 버튼을 클릭하여 private_key.pem 파일을 업로드합니다.

여기에 이미지 설명 입력

4 단계 : Android Studio를 사용하여 새 키 저장소 파일을 만듭니다.

향후 앱의 다음 릴리스에 서명하려면이 키 스토어가 필요합니다. 암호를 잊어 버리지 마십시오.

Android 프로젝트 중 하나를 엽니 다 (무작위로 하나 선택). 이동 빌드 -> APK 서명 생성 키를 누릅니다 새로 만들기 .

여기에 이미지 설명 입력

이제 필수 필드를 채워야합니다.

키 저장소 경로는 생성 할 새 키 저장소를 나타냅니다. 오른쪽에있는 점 3 개 아이콘을 사용하여 폴더와 이름을 선택합니다 C:\Android\upload_key.jks(.jks 확장자가 자동으로 추가됨).

참고 : upload새 별칭 이름으로 사용했지만 이전에 다른 별칭을 가진 동일한 키 저장소를 사용하여 다른 앱에 서명 한 경우 이전에 원래 키 저장소에 있던 동일한 별칭 이름을 선택해야합니다.

여기에 이미지 설명 입력

완료되면 확인을 누르면 이제 새 upload_key.jks키 저장소가 생깁니다. 이제 Android Studio를 닫을 수 있습니다.

5 단계 : 새로 생성 된 upload_key.jks키 저장소 에서 업로드 인증서를 추출해야합니다 . 터미널을 열고 다음을 입력하십시오.

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -file PATH_TO_OUTPUT_FILE

전설:

  • UPLOAD_KEYSTORE_PATH = 방금 만든 업로드 키 저장소의 경로입니다. 이 경우 C:\Android\upload_key.jks.
  • UPLOAD_KEYSTORE_ALIAS = 업로드 키 저장소와 관련된 새 별칭입니다. 이 경우 upload.
  • PATH_TO_OUTPUT_FILE = 확장자가 .pem 인 출력 파일의 경로. 같은 것 C:\Android\upload_key_public_certificate.pem.

예:

keytool -export -rfc -keystore "C : \ Android \ upload_key.jks"-alias upload -file "C : \ Android \ upload_key_public_certificate.pem"

Enter를 누르면 키 저장소 비밀번호를 제공해야합니다.

이제 모든 것이 정상이면 PATH_TO_OUTPUT_FILE 폴더에 upload_key_public_certificate.pem.

6 단계 : upload_key_public_certificate.pem아래 이미지와 동일한 버튼을 클릭 하여 파일 업로드

여기에 이미지 설명 입력

7 단계 : 클릭 ENROLL의 앱 서명 페이지의 끝에서 버튼을 누릅니다.

여기에 이미지 설명 입력

이제 모든 새 릴리스 APK를 Google Play 개발자 콘솔에 업로드하기 전에 4 단계upload_key.jks 에서 만든 키 저장소 및 별칭 으로 서명해야합니다 .

더 많은 리소스 :

Q & A

Q : 새 upload_key 키 저장소로 서명 된 APK를 업로드하면 Google Play에 다음과 같은 오류가 표시 됩니다. 서명되지 않은 APK를 업로드했습니다. 서명 된 APK를 만들어야합니다 .

A : 출시 APK를 빌드하는 동안 두 서명 (V1 및 V2)으로 APK에 서명하도록 선택합니다. 읽기 여기에 자세한 내용은.

업데이트 됨

4,5,6 단계는 기존 앱에 대한 선택적 업로드 키를 만드는 것입니다.

"업로드 키 (기존 앱의 경우 선택 사항) : 프로그램 등록 중에 생성하는 새 키. Play Console에 업로드하기 전에 업로드 키를 사용하여 향후 모든 APK에 서명합니다." https://support.google.com/googleplay/android-developer/answer/7384423


3
귀하의 연습은 매우 유용합니다! 그들은 그것을 공식 웹 사이트에 넣어야합니다 lol 귀하의 예제에 대한 경로 이름에 "_"따옴표가 누락되어 W10 콘솔에서 오류가 발생합니다
NukeouT

3
따옴표는 경로 내에 공백이 하나 이상있는 경우에만 필요하지만 모든 콘솔 명령이 작동하는 방식입니다. 따라서 경로가이면 따옴표를 사용해야 "C:\My Path\MyName"하지만 경로가 C:\MyPath\MyName. Btw 감사합니다 :)
MatPag

1
@layth 새 키 저장소를 만드는 것은 Step 4가이드입니다. : D
MatPag

1
나는 그렇게했지만 새 키 저장소 대화 상자를 얻었을 때 키 저장소 경로와 암호 필드가 비어 있었으므로 이전 키 저장소를 가리키고 이전 암호를 입력했습니다. btw는 현재 "keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS- file PATH_TO_OUTPUT_FILE "은 keytool이 무엇을 의미하는지 모른다고 계속 불평합니다. "C : \ Program Files \ Java \ jdk1.8.0_25 \ bin \ keytool.exe"를 추가하려고했지만 작동하지 않았습니다. 정확히 어디에 넣어야할지 모르겠 기 때문일 수 있습니다.
NukeouT

9
더 이상 PEPK 도구를 찾을 수 없기 때문에 Google이 절차를 변경 한 것 같습니다.
Andrea Motto 2017 년

31

1 분 정도 소요되는 훨씬 더 간단한 솔루션이 있습니다.

  1. Google Play Console에서 출시 관리 -> 앱 서명을 선택합니다.
  2. 첫 번째 옵션 인 Android Studio를 사용하여 암호화 된 개인 키 생성 (또는 이와 유사한 옵션이있는 옵션을 선택하십시오. 해당 페이지를 더 이상 볼 수 없습니다.)
  3. 안드로이드 스튜디오에서에서 안드로이드 앱 번들 (.aap 파일)을 생성 빌드 -> 서명 번들 / APK를 생성 ... 선택 안드로이드 앱 번들 옵션을 체크하는 것을 잊지 마세요 수출 암호화 키를 (구글 Play 앱 응용 프로그램을 등록하는 데 필요한 서명) 옵션. 생성 된 키 저장소가없는 경우 하나의 임시 생성하십시오.
  4. 이제 "까다로운"부분입니다. .aap이 생성 된 후 Android Studio는 .aap 파일이 저장된 위치에 대한 경로가 포함 된 알림을 오른쪽 하단 모서리에 표시합니다. 동일한 알림에서 확장하면 개인 키가 저장된 경로에 대한 다른 링크 ( private_key.pepk 라고 함 )를 찾을 수 있습니다. 이 알림을 놓친 경우 걱정하지 마세요. 오른쪽 하단 의 이벤트 로그 버튼을 클릭하여 이벤트 로그 창을 열면 동일한 정보를 찾을 수 있습니다. 그 위치를여십시오. 저는 C : \ Users \ yourUser \ .android였습니다.

여기에 이미지 설명 입력

  1. 브라우저로 돌아가 APP SIGNING PRIVATE KEY 버튼을 누르고 컴퓨터의 개인 키 위치를 찾습니다.

끝난!

이제 이전에 생성 한 릴리스를 업로드 할 수 있습니다. :) 행운을 빕니다!


1
그것은 최고의 더 간단한 대답
사이먼

나에게 너무 많은 시간과 마음의 더 중요한 것은 평화에 저장
Meenohara

이 옵션이 암호화 된 키 내보내기 (앱 Google Play 앱 서명 등록에 필요) 옵션이 표시되지 않습니다.
Jarvis

요점 5에 대해 자세히 설명해 주시면 감사하겠습니다.이 버튼이 보이지 않습니다. 어디에 있습니까? 최근 업데이트에서 레이아웃이 변경되었을 수 있습니다.
androidneil

좋아 좋아 이제 다음 업데이트에서 무엇을 해야할지 궁금합니다. .pepk 키가 다시 필요하거나 동일한 키 또는 새 개인 .pepk 키를 사용하여 버전 2에 서명해야합니다. pls help
Sunil Chaudhary

15

Android 애플리케이션 패키지 파일 (APK)을 Android App Bundle (AAB)로 마이그레이션하는 동안 Play 스토어에 앱을 게시하는 동안이 문제가 발생하여 아래와 같이 해결되었습니다.

.aab파일을 빌드 할 때 아래와 같이 키 내보내기 경로를 저장할 위치를 묻는 메시지가 표시됩니다.

여기에 이미지 설명 입력
여기에 이미지 설명 입력 두 번째 이미지에서는 .aab 파일을 생성하는 동안 .pepk가 특정 폴더에 저장할 암호화 된 키 내보내기 경로 위치를 찾습니다.

Play 스토어 자격 증명으로 Google Play Console에 로그인 한 후 왼쪽에서 프로젝트를 선택하고 앱 서명 옵션 출시 관리 >> 앱 서명을 선택합니다. 여기에 이미지 설명 입력

Google 앱 서명 인증 창이 표시됩니다.

그 후 세 개의 라디오 버튼 선택 **

Android Studio 라디오 버튼에서 내 보낸 키 업로드

**, 아래와 같이 APP SIGNING PRIVATE KEY 버튼이 확장됩니다.

여기에 이미지 설명 입력

버튼을 클릭하고 .pepk파일을 선택 합니다 ( .aab위와 같이 파일 을 생성하는 동안 저장했습니다 )

다른 모든 옵션을 읽고 제출하십시오.

성공하면 앱 릴리스로 돌아가서 .aab 파일을 찾아보고 롤아웃을 완료 할 수 있습니다.

뿡 빵뀨


좋아 좋아 이제 다음 업데이트에서 무엇을 해야할지 궁금합니다. .pepk 키가 다시 필요하거나 동일한 키 또는 새 개인 .pepk 키를 사용하여 버전 2에 서명해야합니다. pls help
Sunil Chaudhary

나의 이해에 따라, 필요 .... u는 옛 .pepk 키를 사용할 수 있습니다, 다음 시간을 만들 수 없습니다
Ambilpura 선일 쿠마르

업데이트에 .pepk를 어떻게 사용합니까? 내 앱을 업로드 할 때 Google 앱 서명을 성공적으로 사용했지만 이제 업데이트를 푸시하려고하고 @AmbilpuraSunilKumar
nt95

여기도 마찬가지입니다. abb를 Play 스토어에 업로드하고 .pepk 파일을 완전히 무시합니다. 앱을 업데이트 할 때 무엇이 ​​좋고 무엇을해야하는지 정확히 아는 것이 좋을 것입니다.
Julian Eggers

4

다음을 수행해야했습니다.

  1. Google Play Console에서 앱 만들기 여기에 이미지 설명 입력

2. App releases-> Manage production-> Create release로 이동합니다.

3. Google Play 앱 서명에서 계속을 클릭합니다. 여기에 이미지 설명 입력

4. "keytool -genkey -v -keystore c : \ path \ to \ cert.keystore -alias uploadKey -keyalg RSA -keysize 2048 -validity 10000"을 실행하여 업로드 인증서를 생성합니다.

5. 생성 된 인증서 (c : \ path \ to \ cert.keystore)로 apk에 서명합니다.

6. 앱 릴리스 에서 서명 된 APK 업로드 -> 프로덕션 관리-> 릴리스 편집

7. apk를 업로드하면 4 단계에서 생성 된 인증서가 앱 서명 인증서 에 추가되고 향후 모든 빌드에 대한 서명 인증서가됩니다.


1
정확히이 작업을 수행했지만 Google Play 스토어를 통해 앱을 설치하면 내 앱에서 Google 로그인이 작동하지 않습니다. *하지만 * 릴리스 관리 페이지에서 apk를 다운로드하여 에뮬레이터 / 장치에 수동으로 설치하면 작동합니다. 내가 뭘 놓치고 있는지 아십니까?
Raghudevan Shankar

나는 약 3 시간 동안 모든 곳을 수색했고 마침내 당신이 나를 구했습니다!
Oliver Dixon

3

당신이 사용하는 경우 원단 (찌르다 설정 서명) 공개 베타 릴리스, DO NOT USE 구글은 앱 서명을 재생합니다. 두 개의 서명 된 APK를 빌드 한 후에해야합니다!

더 많은 Play 스토어 (samsung, amazon, xiaomi, ...)에 배포 할 때 두 개의 서명 된 APK를 다시 빌드해야합니다.

따라서 Google Play 앱 서명에주의하십시오.

되돌릴 수 없습니다. : / Google Play는 프로덕션 키로 서명 된 APK를 수락 한 후 승인하지 않았습니다. Google Play 앱 서명을 활성화 한 후 업로드 키만 허용됩니다.

CI 배포가 정말 복잡합니다 ...

업그레이드 관련 다음 문제 : https://issuetracker.google.com/issues/69285256


1
굵은 대문자 DON'T USE유형의 댓글은 위험합니다. 문제와 권장 솔루션에 대해 자세히 설명해 주시겠습니까? 전혀 해결책이 없습니까? Fabric 용 APK에 두 번 서명하기가 그렇게 어렵나요?
Gokhan Arik

1
APK에 두 번 서명하는 것은 그리 어렵지 않지만 설명했듯이 동일하지 않은 APK를 두 개 (또는 그 이상) 빌드해야합니다 (따라서 Play 스토어에 게시되는 것과 다른 파일을 Fabric Beta에서 테스트하고 있음). 베타 테스터에서 프로덕션 빌드를 테스트하는 지점이 느슨합니다. 다른 파일을 테스트하고 있습니다. :). 그것은 그들이 그것을 chnage해야한다는 일부 복잡한 CI / CD를 가지고 사람들을위한 단지 경고 ...의
mtrakal

2
이제 Google Play는 앱 서명에 등록한 후에도 프로덕션 키로 서명 된 APK를 허용합니다.
Pierre

2

다음을 수행하십시오.

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button

그 후에 앱 내 구매를 테스트하고 예전처럼 서비스를 플레이 할 수 있나요? 이것에 대한 경험이 있습니까? 나조차도 무거운 발걸음을별로 좋아하지 않기 때문입니다.
Siddharth

1
별로 "방법에 대한 적절한 답변을 사용 ... 구글 플레이 앱 서명을"
벤 매드슨

2
그리고 그것을 수행하는 적절한 방법으로 무엇을 제안합니까?
Sterling Diaz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.