TopGit
Đánh giá repo GitHub

Gradle Play Publisher: Tự Động Hoá Phát Hành Android

Triple-T/gradle-play-publisher
GTopGit review image for Triple-T/gradle-play-publisher
Review by Topgit.dev for Triple-T/gradle-play-publisher, with GitHub repository stats and README context.
Nhận định nhanh

Gradle Play Publisher là một plugin Gradle giúp đẩy App Bundle và APK của Android từ script build thẳng lên Google Play Console, đồng thời xử lý việc thăng cấp track và trang thông tin ứng dụng. Repo có 4308 sao trên GitHub. Hãy dùng nếu quy trình phát hành của bạn đã chạy qua Gradle và CI; bỏ qua nếu bạn cần hỗ trợ chủ động cho các trường hợp phát sinh, vì dự án đang ở chế độ bảo trì và issue không được phản hồi.

Sao
★ 4.3k
Fork
⑂ 347
Người đóng góp
👥 83
Ngôn ngữ
Kotlin
Giấy phép
MIT
Chủ đề
Mobile
Cập nhật
Aug 2026
Trang chủ
GitHub

Gradle Play Publisher Là Gì?

Gradle Play Publisher, gọi tắt là GPP, là một plugin Gradle tự động hoá việc tải lên và thăng cấp App Bundle hoặc APK của Android lên Google Play Store, đồng thời đẩy trang thông tin ứng dụng như mô tả và ảnh chụp màn hình. Nó chạy dưới dạng các task Gradle đặt tên theo quy ước của Android Gradle Plugin, ví dụ publishBundle hay publishApk, nên gắn vào một build Android có sẵn thay vì thay thế build đó.

Tính Năng Chính Để Phát Hành Android

  • Tải lên và thăng cấp cả App Bundle lẫn APK tới bất kỳ track nào (internal, alpha, beta, production, hoặc một track tuỳ chỉnh) qua các task Gradle như publishBundle và publishApk.
  • Đặt tên task Gradle theo mẫu [action][Variant][Thing], khớp với quy ước riêng của Android Gradle Plugin, nên một flavor tên paid sẽ tự có task publishPaidReleaseBundle.
  • Quản lý trang thông tin ứng dụng trên Play Store (mô tả, thông tin liên hệ, ảnh chụp màn hình) từ các file trong src/[sourceSet]/play, và tự gộp bản dịch còn thiếu từ ngôn ngữ mặc định.
  • Đọc ghi chú phát hành theo từng track từ file release-notes/[language]/[track].txt, và lấy lại ghi chú của bản phát hành trước nếu không tìm thấy file nào.
  • Tải lên artifact Internal Sharing và có thể cài trực tiếp lên thiết bị đang kết nối bằng task installReleasePrivateArtifact.
  • Tự xử lý xung đột version code bằng resolutionStrategy là IGNORE hoặc AUTO thay vì làm build thất bại.
  • Xác thực qua file JSON của service account, biến môi trường ANDROID_PUBLISHER_CREDENTIALS, hoặc Application Default Credentials kèm tuỳ chọn mạo danh service account (impersonation).
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Điểm mạnh

  • Gắn việc phát hành vào chính các task Gradle build ứng dụng, nên một job CI chỉ cần chạy một lệnh thay vì viết script riêng cho Play Console.
  • Tự sinh một task cho từng product flavor, theo đúng quy ước đặt tên riêng của Android Gradle Plugin.
  • Bao quát hơn cả việc tải artifact: ghi chú phát hành, tên bản phát hành, sản phẩm trong ứng dụng, gói thuê bao, và nội dung trang thông tin đều có thể script hoá.
  • Ba cách xác thực (file service account, biến môi trường, hoặc Application Default Credentials) đáp ứng cả phát triển cục bộ lẫn CI mà không cần hardcode secret.
  • Giấy phép MIT, không có ràng buộc nào khi dùng trong một dự án Android thương mại.

Trạng Thái Dự Án Và Giới Hạn

  • Dự án đang ở chế độ bảo trì: người duy trì không phản hồi báo lỗi, và theo README, một bản vá chỉ được gộp nếu có ai đó gửi pull request.
  • GPP không thể xử lý bản phát hành đầu tiên của ứng dụng. APK hoặc App Bundle đầu tiên đó vẫn phải được tải lên bằng tay qua Google Play Console, vì việc đăng ký ứng dụng không có sẵn qua Play Developer API.
  • Ghi chú phát hành bị giới hạn 500 ký tự và tên bản phát hành bị giới hạn 50 ký tự, đây là giới hạn cứng của Play Store chứ không phải do GPP đặt ra.
  • File mapping không áp dụng cho App Bundle vì dữ liệu mapping đã nằm sẵn trong bundle, nên phần quy trình này chỉ có ý nghĩa với build APK.
  • Giới hạn ký tự chính xác cho từng trường trong trang thông tin theo ngôn ngữ (tiêu đề, mô tả ngắn, mô tả đầy đủ) không nằm trong tài liệu được cung cấp ở đây, nên hãy kiểm tra trực tiếp trong Play Console trước khi chốt nội dung.

Lựa Chọn Thay Thế Để Tự Động Hoá Triển Khai Android

Fastlane (supply) — công cụ tự động hoá phát hành viết bằng Ruby, phủ cả iOS lẫn Android, đáng cân nhắc nếu pipeline của bạn không xoay quanh Gradle.Tải lên thủ công qua Google Play Console — quy trình web có sẵn, hợp lý cho các đội phát hành đủ hiếm để việc viết script không đáng công sức.Viết script riêng gọi thẳng Google Play Developer API — kiểm soát trực tiếp cùng API mà GPP đang bọc lại, dành cho các logic phát hành mà mô hình task của GPP chưa xử lý được.

Câu Hỏi Thường Gặp

Gradle Play Publisher có đang được duy trì tích cực không?

Gradle Play Publisher đang ở chế độ bảo trì: README nói báo lỗi (issue) không được phản hồi, còn một bản vá vẫn cần được gửi dưới dạng pull request.

Các điều kiện tiên quyết để dùng Gradle Play Publisher là gì?

Gradle Play Publisher cần một ứng dụng đã được tải lên một lần qua Google Play Console, một cấu hình ký release hợp lệ, và một service account trên Google Cloud có bật AndroidPublisher API cùng quyền phát hành trong Play Console.

Làm sao để xác thực Gradle Play Publisher với Google Play?

Gradle Play Publisher xác thực bằng file JSON key của service account khai báo qua serviceAccountCredentials, biến môi trường ANDROID_PUBLISHER_CREDENTIALS, hoặc Application Default Credentials kèm tuỳ chọn mạo danh service account.

Gradle Play Publisher có thể tải lên phiên bản đầu tiên của ứng dụng không?

Gradle Play Publisher không thể tải lên phiên bản đầu tiên của ứng dụng. README yêu cầu lần tải đầu tiên đó phải qua Google Play Console vì việc đăng ký ứng dụng không có sẵn qua Play Developer API; GPP chỉ xử lý mọi lần tải lên sau đó.

GPP có thể phát hành những loại metadata nào trên Play Store?

GPP có thể phát hành nội dung trang thông tin và thông tin liên hệ, dữ liệu sản phẩm trong ứng dụng và gói thuê bao, cùng ảnh chụp màn hình, tất cả lấy từ file trong thư mục src/[sourceSet]/play của project và được gộp theo ngôn ngữ và flavor.

Giới hạn ký tự cho ghi chú phát hành trong GPP là bao nhiêu?

Ghi chú phát hành quản lý qua GPP bị giới hạn 500 ký tự theo README, còn trường tên bản phát hành riêng bị giới hạn 50 ký tự.

Vấn đề nó giải quyết

Phát hành một bản cập nhật Android nghĩa là phải xử lý hai hệ thống tách biệt: build Gradle tạo ra App Bundle hoặc APK, và Google Play Console, nơi artifact đó, ghi chú phát hành, và trang thông tin ứng dụng thực sự được đưa lên. Làm phần Play Console bằng tay cho mỗi lần phát hành, nhất là khi có nhiều product flavor và nhiều track, nghĩa là ai đó phải tải lại file và gõ lại ghi chú phát hành mỗi lần. Gradle Play Publisher nối API Play Developer vào chính các task Gradle vốn đã build ứng dụng, nên bước tải lên và thăng cấp chạy như một phần của build thay vì một bước thủ công riêng.

Trường hợp sử dụng tốt nhất

  • Một pipeline CI cần đẩy bản build internal hoặc alpha mới cho tester sau mỗi lần merge, mà không ai phải đụng vào Play Console bằng tay.
  • Các đội có nhiều product flavor, mỗi flavor cần track và ghi chú phát hành riêng, vì GPP tự sinh một task cho từng flavor.
  • Thăng cấp một bản build đã có trên một track sang track khác, ví dụ chuyển bản beta lên production với tỷ lệ rollout theo giai đoạn, mà không cần tải lại artifact.
  • Giữ nội dung trang thông tin ứng dụng, ảnh chụp màn hình, và metadata sản phẩm trong ứng dụng dưới dạng version control thay vì chỉnh tay trong Play Console.

Cách cài đặt / dùng thử

Áp dụng plugin cho từng module trong build.gradle(.kts), đặt cạnh com.android.application. Sau đó thêm id("com.github.triplet.play") version "4.1.1" vào khối plugins {}. Ba điều cần có sẵn trước khi plugin này hữu ích: APK hoặc App Bundle đầu tiên của ứng dụng đã được tải lên một lần qua Google Play Console, vì GPP không làm được phần đó; build release đã có cấu hình ký hợp lệ; và đã tạo một service account trên Google Cloud với AndroidPublisher API được bật cùng file JSON key đã tải về. Bản snapshot của phiên bản kế tiếp, hiện là 5.0.0-SNAPSHOT, được đăng lên kho snapshots của Sonatype cho ai muốn theo dõi trước khi có bản gắn tag chính thức.

Cách sử dụng

Trỏ GPP tới file key của service account bằng play { serviceAccountCredentials.set(file("path/to/your-key.json")) }, hoặc bỏ qua việc commit file đó và dùng biến môi trường ANDROID_PUBLISHER_CREDENTIALS thay thế. Từ đó, ./gradlew publishBundle tải lên và phát hành một App Bundle, ./gradlew publishApk làm tương tự với APK, còn ./gradlew promoteArtifact chuyển một bản phát hành có sẵn từ track này sang track khác bằng cặp thuộc tính fromTrack/promoteTrack hoặc các tuỳ chọn dòng lệnh tương ứng. Chạy ./gradlew bootstrapListing một lần để kéo trang thông tin ứng dụng hiện tại về project làm điểm khởi đầu, sau đó ./gradlew publishListing để đẩy metadata đã chỉnh lên lại. Các thiết lập như track, releaseStatus, và userFraction, tỷ lệ rollout theo giai đoạn mặc định là 0.1 (10%), đều nằm trong khối play {}.

Ai nên dùng — và ai nên bỏ qua

Hãy thử Gradle Play Publisher nếu bạn đã build ứng dụng Android bằng Gradle và muốn ghi chú phát hành, thăng cấp track, và metadata trang thông tin nằm trong repo thay vì trong giao diện Play Console. Nó phù hợp với các đội có nhiều flavor hoặc một pipeline CI đã chạy sẵn các task Gradle. Bỏ qua nếu bạn không thoải mái khi phải đọc source hoặc mở pull request lúc có lỗi, vì README nói rõ issue không được phản hồi, hoặc nếu bạn chưa làm bước tải lên thủ công lần đầu và thiết lập service account mà plugin này cần có sẵn.

Repo liên quan

Nguồn & ghi công

Thông tin và trích dẫn lấy từ repository GitHub Triple-T/gradle-play-publisher và README của nó.

Dữ liệu GitHub · đồng bộ lần cuối 14 thg 8, 2026Đánh giá bởi Henry
Về TopGit

gradle-play-publisher có đáng để bạn bỏ thời gian?

ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về gradle-play-publisher.

GitHub