Xuất bản ứng dụng lên Google Play Store
Sau khi hoàn thành ứng dụng, bước cuối cùng là đưa nó đến tay người dùng. Bài này hướng dẫn chi tiết quy trình xuất bản app lên Google Play Store.
1. Tổng quan quy trình
1. Chuẩn bị app → Versioning, signing
2. Tạo tài khoản Developer → $25 một lần
3. Tạo Store Listing → Icon, screenshots, mô tả
4. Upload App Bundle → .aab file
5. Review & Publish → 1-7 ngày2. Chuẩn bị ứng dụng
2.1 Versioning (Đặt phiên bản)
Mỗi lần upload lên Play Store cần tăng version:
// app/build.gradle.kts
android {
defaultConfig {
applicationId = "com.yourname.yourapp" // Unique ID
versionCode = 1 // Số nguyên, tăng mỗi lần upload
versionName = "1.0" // Hiển thị cho user
}
}Giải thích:
applicationId: ID duy nhất trên Play Store, không đổi được sau khi publishversionCode: Bắt buộc tăng mỗi lần upload (1 → 2 → 3…)versionName: Hiển thị cho user, có thể tùy chọn (1.0 → 1.1 → 2.0)
2.2 Tạo Keystore (Chữ ký số)
Keystore là “chứng minh thư” của app - chứng minh bạn là chủ sở hữu.
Cách tạo trong Android Studio:
- Vào Build > Generate Signed Bundle/APK
- Chọn Android App Bundle
- Click Create new…
- Điền thông tin:
- Key store path: Nơi lưu file
.jks - Password: Mật khẩu keystore
- Key alias: Tên cho key (ví dụ:
release) - Key password: Mật khẩu cho key
- Validity: 25 năm (mặc định)
- Certificate: Thông tin của bạn/công ty
- Key store path: Nơi lưu file
⚠️ QUAN TRỌNG: Lưu keystore và mật khẩu ở nơi an toàn! Mất keystore = không thể update app!
2.3 Cấu hình signing trong Gradle
// app/build.gradle.kts
android {
signingConfigs {
create("release") {
storeFile = file("path/to/your/keystore.jks")
storePassword = "your_keystore_password"
keyAlias = "your_key_alias"
keyPassword = "your_key_password"
}
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("release")
}
}
}Không commit password vào Git! Dùng cách sau:
// app/build.gradle.kts
signingConfigs {
create("release") {
storeFile = file(project.property("KEYSTORE_FILE") as String)
storePassword = project.property("KEYSTORE_PASSWORD") as String
keyAlias = project.property("KEY_ALIAS") as String
keyPassword = project.property("KEY_PASSWORD") as String
}
}# local.properties (đã được ignore bởi .gitignore)
KEYSTORE_FILE=../keystore/release.jks
KEYSTORE_PASSWORD=your_password
KEY_ALIAS=release
KEY_PASSWORD=your_key_password2.4 Tạo Release Bundle
- Vào Build > Generate Signed Bundle/APK
- Chọn Android App Bundle (khuyến nghị) hoặc APK
- Chọn keystore đã tạo
- Chọn release build variant
- Click Create
File .aab sẽ được tạo tại app/release/app-release.aab
3. Tạo tài khoản Google Play Developer
- Truy cập play.google.com/apps/publish
- Đăng nhập với tài khoản Google
- Chấp nhận điều khoản
- Thanh toán $25 USD (một lần duy nhất)
- Hoàn thành xác minh danh tính
Lưu ý: Cần 24-48 giờ để tài khoản được kích hoạt
4. Tạo Store Listing
4.1 Thông tin cơ bản
- App name: Tên ứng dụng (tối đa 30 ký tự)
- Short description: Mô tả ngắn (tối đa 80 ký tự)
- Full description: Mô tả đầy đủ (tối đa 4000 ký tự)
Tips viết mô tả:
- Highlight tính năng chính
- Dùng bullet points
- Thêm keywords để dễ tìm kiếm
- Viết cả tiếng Việt và tiếng Anh
4.2 Graphics Assets (Hình ảnh)
| Asset | Kích thước | Số lượng |
|---|---|---|
| App icon | 512 x 512 px | 1 |
| Feature graphic | 1024 x 500 px | 1 |
| Phone screenshots | Min 320px, max 3840px | 2-8 |
| Tablet screenshots | (Optional) | 0-8 |
Tips chụp screenshots:
- Chụp trên emulator với resolution đẹp
- Thêm text overlay highlight tính năng
- Dùng app như Placeit để tạo mockup đẹp
4.3 Categorization
- Category: Games, Education, Productivity, etc.
- Tags: Thêm tối đa 5 tags liên quan
- Content rating: Trả lời questionnaire về nội dung app
5. Upload App Bundle
- Vào Release > Production
- Click Create new release
- Chọn Google Play App Signing (khuyến nghị)
- Upload file
.aab - Thêm Release notes (ghi chú phiên bản)
- Click Save → Review release
6. Content Rating
Trả lời bảng câu hỏi về nội dung:
- App có bạo lực không?
- Có nội dung người lớn?
- Có quảng cáo?
- Có mua hàng in-app?
Hệ thống tự động đánh giá: Everyone, Teen, Mature, etc.
7. App Pricing
- Free: Miễn phí (có thể thêm ads hoặc in-app purchases)
- Paid: Đặt giá (Google giữ 15-30% commission)
Lưu ý: App trả phí KHÔNG thể chuyển thành miễn phí sau này
8. Submit và chờ Review
- Kiểm tra lại tất cả thông tin
- Click Start rollout to Production
- Đợi Google review (thường 1-7 ngày)
Các lý do hay bị reject:
| Lý do | Cách fix |
|---|---|
| Thiếu Privacy Policy | Thêm link privacy policy |
| Crash khi mở app | Test kỹ trước khi submit |
| Mô tả không khớp với app | Cập nhật mô tả chính xác |
| Vi phạm bản quyền | Xóa nội dung vi phạm |
| Thiếu tính năng | Đảm bảo app hoàn chỉnh |
9. Sau khi Publish
Theo dõi số liệu
- Installs: Số lượt cài đặt
- Ratings: Đánh giá từ users
- Crashes: Báo cáo crash
- ANRs: App Not Responding
Update app
- Tăng
versionCode - Build new
.aab - Upload lên Production hoặc Testing track
- Đợi review
Testing Tracks
| Track | Mục đích |
|---|---|
| Internal | Team nội bộ (20 người) |
| Closed | Beta testers (giới hạn) |
| Open | Public beta |
| Production | Tất cả users |
10. Checklist trước khi upload
-
versionCodeđã tăng - Test kỹ trên nhiều devices
- Keystore đã backup an toàn
- Screenshots đẹp và accurate
- Privacy Policy đã có
- App icon rõ ràng ở size nhỏ
- Mô tả chứa keywords phù hợp
- Content rating đã hoàn thành
📝 Tóm tắt cho người mới
- Keystore = Chứng minh thư của app, phải giữ an toàn
- versionCode phải tăng mỗi lần update
- Tài khoản Developer tốn $25 một lần
- Screenshots và mô tả rất quan trọng cho downloads
- Review mất 1-7 ngày
- Dùng Testing tracks để test trước khi release cho tất cả
Last updated on