Cách bật Google Play App Signing


113

Tôi nghĩ rằng rất nhiều nhà phát triển đang cố gắng tìm hiểu thêm về tính năng Google Play App Signing mới được giới thiệu tại Google I / O 2017.

Khả năng lưu trữ kho khóa để ký ứng dụng bên trong Google Play giúp bạn tiết kiệm công sức lưu trữ kho khóa một cách an toàn và có thể giúp hệ thống tối ưu hóa các APK được phân phối cho mọi thiết bị, dựa trên đặc điểm phần cứng và hệ điều hành.

Bạn có thể đọc thêm về chủ đề này trong tài liệu chính thức tại đây: https://developer.android.com/studio/publish/app-signs.html#google-play-app-signs .

Với câu trả lời sau đây, tôi sẽ giải thích rõ hơn một chút về các bước bạn cần làm theo để tải lên kho khóa gốc và cách tạo kho khóa tải lên mới, mà bạn sẽ cần ký APK của mình từ thời điểm này trở đi.

Câu trả lời:


189

Hướng dẫn này dành cho các nhà phát triển đã có ứng dụng trong Cửa hàng Play. Nếu bạn đang bắt đầu với một ứng dụng mới, quá trình này dễ dàng hơn nhiều và bạn có thể làm theo các hướng dẫn của đoạn "Ứng dụng mới" từ đây

Điều kiện tiên quyết mà 99% nhà phát triển đã có :

  1. Android Studio

  2. JDK 8 và sau khi cài đặt, bạn cần thiết lập một biến môi trường trong không gian người dùng của mình để đơn giản hóa các lệnh đầu cuối. Trong Windows x64, bạn cần thêm điều này: C:\Program Files\Java\{JDK_VERSION}\binvào Pathbiến môi trường. (Nếu bạn không biết cách thực hiện việc này, bạn có thể đọc hướng dẫn của tôi để thêm thư mục vào Pathbiến môi trường Windows 10 ).

Bước 0 : Mở bảng điều khiển dành cho nhà phát triển của Google Play, sau đó đi tới Quản lý bản phát hành -> Ký ứng dụng .

nhập mô tả hình ảnh ở đây

Chấp nhận Điều khoản đăng ký ứng dụng.

nhập mô tả hình ảnh ở đây

Bước 1 : Tải xuống PEPK Tool bằng cách nhấp vào nút giống như hình bên dưới

nhập mô tả hình ảnh ở đây

Bước 2 : Mở một thiết bị đầu cuối và nhập:

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

Huyền thoại:

  • PATH_TO_PEPK = Đường dẫn đến pepk.jar mà bạn đã tải xuống ở Bước 1 , có thể giống như C:\Users\YourName\Downloads\pepk.jarđối với người dùng Windows.
  • PATH_TO_KEYSTORE = Đường dẫn đến kho khóa mà bạn sử dụng để ký APK phát hành của mình. Có thể là tệp kiểu * .keystore hoặc * .jks hoặc không có phần mở rộng. Một cái gì đó giống như C:\Android\mykeystorehoặc C:\Android\mykeystore.keystorevv ...
  • ALIAS_YOU_USE_TO_SIGN_APK = Tên bí danh bạn sử dụng để ký APK phát hành.
  • PATH_TO_OUTPUT_FILE = Đường dẫn của tệp đầu ra có phần mở rộng .pem, giống nhưC:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY = Khóa mã hóa này phải luôn giống nhau. Bạn có thể tìm thấy nó trong trang App Signing, sao chép và dán nó. Nên ở dạng này:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Thí dụ:

java -jar "C: \ Users \ YourName \ Downloads \ pepk.jar" --keystore = "C: \ Android \ mykeystore" --alias = myalias --output = "C: \ Android \ private_key.pem" - khóa mã hóa = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de

Nhấn Enter và bạn sẽ cần cung cấp theo thứ tự:

  1. Mật khẩu kho khóa
  2. Mật khẩu bí danh

Nếu mọi thứ đã ổn, bây giờ bạn sẽ có một tệp trong thư mục PATH_TO_OUTPUT_FILE được gọi private_key.pem.

Bước 3 : Tải lên tệp private_key.pem bằng cách nhấp vào nút giống như hình ảnh bên dưới

nhập mô tả hình ảnh ở đây

Bước 4 : Tạo tệp kho khóa mới bằng Android Studio.

BẠN SẼ CẦN BÀN PHÍM NÀY TRONG TƯƠNG LAI ĐỂ ĐĂNG CÁC MỐI LIÊN QUAN TỚI CỦA ỨNG DỤNG CỦA BẠN, ĐỪNG QUÊN MẬT KHẨU

Mở một trong các dự án Android của bạn (chọn ngẫu nhiên một dự án). Đi tới Xây dựng -> Tạo APK đã ký và nhấn Tạo mới .

nhập mô tả hình ảnh ở đây

Bây giờ bạn nên điền vào các trường bắt buộc.

Đường dẫn kho khóa đại diện cho kho khóa mới mà bạn sẽ tạo, chọn thư mục và tên bằng biểu tượng 3 dấu chấm ở bên phải, tôi đã chọn C:\Android\upload_key.jks(phần mở rộng .jks sẽ được thêm tự động)

LƯU Ý: Tôi đã sử dụng uploadlàm tên bí danh mới nhưng nếu trước đây bạn đã sử dụng cùng một kho khóa với các bí danh khác nhau để ký các ứng dụng khác nhau, bạn nên chọn cùng một tên bí danh mà bạn đã có trước đó trong kho khóa gốc.

nhập mô tả hình ảnh ở đây

Nhấn OK khi hoàn tất và bây giờ bạn sẽ có một upload_key.jkskho khóa mới . Bạn có thể đóng Android Studio ngay bây giờ.

Bước 5 : Chúng ta cần giải nén chứng chỉ tải lên từ upload_key.jkskho khóa mới tạo . Mở một thiết bị đầu cuối và nhập:

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -tệp PATH_TO_OUTPUT_FILE

Huyền thoại:

  • UPLOAD_KEYSTORE_PATH = Đường dẫn của kho khóa tải lên mà bạn vừa tạo. Trong trường hợp này là C:\Android\upload_key.jks.
  • UPLOAD_KEYSTORE_ALIAS = Bí danh mới được liên kết với kho khóa tải lên. Trong trường hợp này là upload.
  • PATH_TO_OUTPUT_FILE = Đường dẫn đến tệp đầu ra có phần mở rộng .pem. Một cái gì đó giống như C:\Android\upload_key_public_certificate.pem.

Thí dụ:

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

Nhấn Enter và bạn sẽ cần cung cấp mật khẩu kho khóa.

Bây giờ nếu mọi thứ đã ổn, bạn sẽ có một tệp trong thư mục PATH_TO_OUTPUT_FILE được gọi upload_key_public_certificate.pem.

Bước 6 : Tải tệp lên bằng upload_key_public_certificate.pemcách nhấp vào nút giống như hình ảnh bên dưới

nhập mô tả hình ảnh ở đây

Bước 7 : Nhấp vào nút GHI DANH ở cuối trang Đăng ký ứng dụng.

nhập mô tả hình ảnh ở đây

Giờ đây, mọi APK phát hành mới phải được ký bằng upload_key.jkskho khóa và bí danh được tạo ở Bước 4 , trước khi được tải lên trong Bảng điều khiển dành cho nhà phát triển trên Google Play.

Nhiêu tai nguyên hơn:

Hỏi & Đáp

H: Khi tôi tải lên APK được ký bằng kho khóa upload_key mới, Google Play hiển thị lỗi như: Bạn đã tải lên APK chưa ký. Bạn cần tạo APK đã ký .

A: Chọn để ký APK bằng cả hai chữ ký (V1 và V2) trong khi xây dựng APK phát hành. Đọc ở đây để biết thêm chi tiết.

ĐÃ CẬP NHẬT

Bước 4,5,6 là tạo khóa tải lên là tùy chọn cho các ứng dụng hiện có

"Khóa tải lên (tùy chọn cho các ứng dụng hiện có): Khóa mới mà bạn tạo trong khi đăng ký chương trình. Bạn sẽ sử dụng khóa tải lên để ký tất cả các APK trong tương lai trước khi tải chúng lên Play Console." https://support.google.com/googleplay/android-developer/answer/7384423


3
Hướng dẫn của bạn rất hữu ích! Họ nên đặt nó trên trang web chính thức lol Các tên đường dẫn cho các ví dụ của bạn đang thiếu "_" dấu ngoặc kép mà sẽ ném một lỗi trên W10 Bảng điều khiển
NukeouT

3
Các dấu ngoặc kép chỉ cần thiết nếu bạn có ít nhất một khoảng trống bên trong đường dẫn của mình, nhưng đây là cách hoạt động của mọi lệnh console. Vì vậy, bạn phải sử dụng dấu ngoặc kép nếu đường dẫn của bạn là: "C:\My Path\MyName"nhưng không phải nếu đường dẫn là C:\MyPath\MyName. Btw cảm ơn bạn :)
MatPag

1
@layth Tạo kho khóa mới là Step 4hướng dẫn: D
MatPag

1
Tôi đã làm điều đó nhưng khi tôi nhận được hộp thoại kho khóa mới của bạn, các trường mật khẩu và đường dẫn kho khóa của nó trống vì vậy tôi đã trỏ chúng vào kho khóa cũ và nhập mật khẩu cũ của nó - btw hiện đang bị kẹt trên "keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS - tệp PATH_TO_OUTPUT_FILE "tiếp tục phàn nàn rằng nó không biết keytool nghĩa là gì. Tôi đã cố gắng thêm "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin \ keytool.exe" nhưng điều đó không làm việc, có thể vì tôi không biết được nơi để đặt nó trong một cách chính xác ..
NukeouT

9
Có vẻ như Google đã thay đổi quy trình vì tôi không thể tìm thấy Công cụ PEPK nữa.
Phương châm của Andrea

31

Có một giải pháp đơn giản hơn nhiều sẽ mất một phút.

  1. Trong google play console, chọn Quản lý bản phát hành -> Ký ứng dụng
  2. Chọn tùy chọn đầu tiên, tùy chọn có Tạo khóa cá nhân được mã hóa với Android Studio (hoặc tùy chọn tương tự; tôi không thể quay lại để xem trang đó nữa)
  3. Trong Android Studio, hãy tạo Android App Bundle (tệp .aap) của bạn từ Build -> Generate Signed Bundle / APK ... , chọn tùy chọn Android App Bundle và đừng quên kiểm tra Xuất khóa đã mã hóa (cần thiết để đăng ký ứng dụng của bạn Ứng dụng Google Play ký) tùy chọn. Nếu bạn chưa tạo kho khóa, hãy tạo một kho khóa đặc biệt.
  4. Bây giờ là phần "khó khăn". Sau khi .aap được tạo, Android Studio sẽ bật lên một thông báo ở góc dưới cùng bên phải chứa đường dẫn đến vị trí lưu tệp .aap. Trong cùng một thông báo, nếu bạn mở rộng nó, bạn sẽ tìm thấy một liên kết khác đến đường dẫn nơi khóa cá nhân được lưu (được gọi là private_key.pepk ). Nếu bạn bỏ lỡ thông báo này, đừng lo lắng, chỉ cần mở cửa sổ Nhật ký sự kiện bằng cách nhấp vào nút Nhật ký sự kiện ở phía dưới bên phải và bạn sẽ tìm thấy thông tin tương tự. Mở vị trí đó. Đối với tôi là C: \ Users \ yourUser \ .android

nhập mô tả hình ảnh ở đây

  1. Quay lại trình duyệt và nhấn nút KHÓA RIÊNG TƯ ĐĂNG KÝ ỨNG DỤNG và duyệt đến vị trí khóa riêng tư trên máy tính của bạn.

Làm xong!

Bây giờ bạn có thể tải lên bản phát hành mà bạn đã tạo trước đó :) Chúc may mắn!


1
Đó là câu trả lời hay nhất và đơn giản hơn
Simon


Tôi không nhận được tùy chọn này Xuất khóa được mã hóa (cần thiết để đăng ký ứng dụng Google Play App ký của bạn).
Jarvis

Tôi thực sự đánh giá cao lời giải thích đầy đủ hơn về điểm 5 - Tôi không thấy nút này, nó ở đâu, có lẽ bố cục đã thay đổi trên các bản cập nhật gần đây?
androidneil

ok tốt đẹp bây giờ tôi muốn tò mò về điều đó trong bản cập nhật tiếp theo phải làm gì ?? như là chúng ta cần .pepk chìa khóa lại hoặc chúng ta phải đăng ký phiên bản 2 sử dụng cùng một khóa hoặc xin key .pepk tin mới giúp đỡ
Sunil Chaudhary

15

Trong khi di chuyển tệp gói ứng dụng Android (APK) sang Android App Bundle (AAB), xuất bản ứng dụng vào Cửa hàng Play, tôi đã gặp phải sự cố này và đã được giải quyết như sau ...

Khi xây dựng .aabtệp, bạn nhận được thông báo về vị trí lưu trữ đường dẫn xuất khóa như bên dưới:

nhập mô tả hình ảnh ở đây
nhập mô tả hình ảnh ở đây Trong hình ảnh thứ hai, bạn tìm thấy đường dẫn xuất khóa được mã hóa Vị trí nơi .pepk của chúng tôi sẽ lưu trữ trong thư mục cụ thể khi tạo tệp .aab.

Sau khi bạn đăng nhập vào Google Play Console bằng thông tin đăng nhập cửa hàng play: chọn dự án của bạn từ phía bên trái, chọn tùy chọn Ký ứng dụng Quản lý phát hành >> Ký ứng dụng nhập mô tả hình ảnh ở đây

bạn sẽ tìm thấy cửa sổ Chứng nhận ký ứng dụng của Google CHẤP NHẬN nó.

Sau đó, bạn sẽ tìm thấy ba nút radio chọn **

Tải lên khóa được xuất từ ​​nút radio Android Studio

**, nó sẽ mở rộng cho bạn nút KHÓA RIÊNG TƯ ĐĂNG KÝ ỨNG DỤNG như bên dưới

nhập mô tả hình ảnh ở đây

nhấp vào nút và chọn .pepktệp (Chúng tôi đã lưu trữ trong khi tạo .aabtệp như trên)

Đọc tất cả các tùy chọn khác và gửi.

Sau khi thành công, bạn có thể quay lại bản phát hành ứng dụng và duyệt qua tệp .aab và hoàn thành RollOut ...

@Arepura


ok tốt đẹp bây giờ tôi muốn tò mò về điều đó trong bản cập nhật tiếp theo phải làm gì ?? như là chúng ta cần .pepk chìa khóa lại hoặc chúng ta phải đăng ký phiên bản 2 sử dụng cùng một khóa hoặc xin key .pepk tin mới giúp đỡ
Sunil Chaudhary

Theo hiểu biết của tôi, không cần phải tạo ra cho lần sau, u có thể sử dụng phím .pepk cũ ....
Ambilpura Sunil Kumar

Làm cách nào để bạn sử dụng .pepk để cập nhật? Tôi sử dụng thành công google ký ứng dụng khi tải ứng dụng của tôi, nhưng bây giờ im cố gắng để đẩy một bản cập nhật và không biết làm thế nào @AmbilpuraSunilKumar
nt95

Ở đây cũng vậy. Tôi chỉ tải abb lên cửa hàng chơi và hoàn toàn bỏ qua tệp .pepk. Sẽ rất tuyệt nếu biết chính xác nó tốt cho việc gì và phải làm gì khi cập nhật ứng dụng.
Julian Eggers

4

Tôi phải làm như sau:

  1. Tạo ứng dụng trong google play console nhập mô tả hình ảnh ở đây

2. Đi tới Bản phát hành ứng dụng -> Quản lý sản xuất -> Tạo bản phát hành

3. nhấp chuột tiếp tục trên Google Play App Signing nhập mô tả hình ảnh ở đây

4.Tạo chứng chỉ tải lên bằng cách chạy "keytool -genkey -v -keystore c: \ path \ to \ cert.keystore -alias uploadKey -keyalg RSA -keysize 2048 -validity 10000"

5. ký apk của bạn với chứng chỉ đã tạo (c: \ path \ to \ cert.keystore)

6.Tải apk đã ký trong Bản phát hành ứng dụng -> Quản lý sản xuất -> Chỉnh sửa bản phát hành

7.Bằng cách tải lên apk, chứng chỉ được tạo ở bước 4 đã được thêm vào chứng chỉ Ký ứng dụng và trở thành chứng chỉ ký của bạn cho tất cả các bản dựng trong tương lai.


1
Tôi đã thực hiện chính xác điều này nhưng đăng nhập google từ ứng dụng của tôi không hoạt động nếu tôi cài đặt ứng dụng qua Cửa hàng Google Play. * Nhưng * nếu tôi tải xuống apk từ trang quản lý phát hành và cài đặt nó theo cách thủ công vào trình giả lập / thiết bị của tôi, nó sẽ hoạt động. Bất kỳ ý tưởng những gì tôi đang thiếu?
Raghudevan Shankar,

Tôi đã tìm kiếm khắp nơi trong khoảng 3 giờ và cuối cùng bạn đã cứu tôi!
Oliver Dixon

3

Khi bạn sử dụng Fabric cho các bản phát hành beta công khai (được ký bằng cấu hình sản phẩm), KHÔNG SỬ DỤNG Google Play App Signing. Bạn sẽ phải sau khi xây dựng hai apks đã ký!

Khi bạn phân phối đến nhiều cửa hàng chơi hơn (samsung, amazon, xiaomi, ...), bạn sẽ phải xây dựng lại hai apk đã ký.

Vì vậy, hãy thực sự cẩn thận với Google Play App Signing.

Không thể hoàn nguyên: / và Google Play thì không sau khi chấp nhận các apk được ký bằng khóa sản xuất. Sau khi bật Google Play App Signing chỉ chấp nhận khóa tải lên ...

Nó thực sự làm phức tạp việc phân phối CI ...

Các vấn đề tiếp theo với nâng cấp: https://issuetracker.google.com/issues/69285256


1
DON'T USEKiểu bình luận vốn táo bạo là nguy hiểm. Bạn có thể giải thích vấn đề và giải pháp được đề xuất chi tiết không? Không có một giải pháp nào cả? Ký APK hai lần cho Vải có khó đến vậy không?
Gokhan Arik

1
Tôi không quá khó để ký APK hai lần, nhưng như tôi mô tả, bạn phải tạo hai (hoặc nhiều) APK không giống nhau (vì vậy bạn đang thử nghiệm trên Fabric Beta tệp khác với tệp sẽ được xuất bản lên Cửa hàng Play). Đó là điểm lỏng lẻo của thử nghiệm xây dựng sản xuất trên người thử nghiệm beta ... bạn đang thử nghiệm một tệp khác :). Nó chỉ là một cảnh báo cho những người có một số CI phức tạp / CD mà họ phải chnage nó ...
mtrakal

2
Lưu ý rằng Google Play hiện chấp nhận các APK được ký bằng khóa sản xuất ngay cả sau khi đăng ký tính năng Ký ứng dụng.
Pierre

2

Làm như sau:

"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

Sau đó, tôi có thể thử nghiệm các dịch vụ mua và chơi ứng dụng như trước không? Bạn có nhận được kinh nghiệm nào về điều này không? Bởi vì ngay cả tôi cũng không thích làm bất kỳ bước nặng nhọc nào.
Siddharth

1
Không thực sự là một câu trả lời thích hợp cho "Làm thế nào để Kích hoạt tính năng Google Play App Ký" ...
Bến Madsen

2
Và bạn đề xuất điều gì như một cách phù hợp để làm điều đó?
Sterling Diaz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.