![]()
Chào mừng bạn đến với khoảnh khắc lịch sử! Ở bài trước, bạn đã cầm trên tay tệp tin .aab (Android) và .ipa (iOS). Nhưng nếu chỉ để chúng nằm im trong ổ cứng máy tính thì thật lãng phí.
Đã đến lúc chúng ta mang "đứa con tinh thần" này ra ánh sáng, đưa nó lên kệ của hai siêu thị ứng dụng lớn nhất: Google Play Store và Apple App Store.
Quy trình này không đòi hỏi code phức tạp, nhưng lại yêu cầu sự tỉ mỉ, kiên nhẫn và tuân thủ các luật lệ nghiêm ngặt. Hãy cùng chuẩn bị hành trang và tiến vào "trận chiến cuối cùng" này!
1. Chuẩn bị hành trang (Pre-flight Checklist)
Trước khi nộp ứng dụng cho Google hoặc Apple duyệt, bạn giống như một người chuẩn bị mở cửa hàng. Khách hàng sẽ không bước vào nếu mặt tiền cửa hàng (Store Listing) trông sơ sài.
Bạn bắt buộc phải chuẩn bị 3 thứ sau:
- Bộ ảnh chụp màn hình (Screenshots): Chụp lại 3-5 tính năng nổi bật nhất của ứng dụng. (Mẹo: Nên thiết kế thêm chữ giải thích tính năng lên ảnh để trông chuyên nghiệp hơn, kích thước chuẩn là 1242 x 2688 cho iOS và 1080 x 1920 cho Android).
- Metadata ứng dụng: Bao gồm Tên ứng dụng (App Name), Đoạn mô tả ngắn (Subtitle), Mô tả dài chi tiết (Description) và Các từ khóa tìm kiếm (Tags).
- Chính sách bảo mật (Privacy Policy): Cả Google và Apple đều bắt buộc bạn phải có một đường link dẫn đến trang Chính sách bảo mật. (Nếu chưa có website riêng, bạn có thể tạo một trang miễn phí bằng Google Sites hoặc các công cụ tạo Privacy Policy Generator trên mạng).
2. Chinh phục Google Play Store (Android)
Thế giới Android cởi mở hơn, nhưng Google cũng ngày càng siết chặt các quy định để bảo vệ người dùng.

Bước 1: Mở tài khoản Google Play Developer
Bạn cần truy cập vào Google Play Console và đăng ký tài khoản Nhà phát triển.
- Chi phí: 25$ (Thanh toán một lần duy nhất, dùng vĩnh viễn).
- Lưu ý mới của Google (Từ năm 2024): Với tài khoản cá nhân mới, bạn bắt buộc phải có ít nhất 20 người tham gia test ứng dụng liên tục trong 14 ngày thì mới được phép phát hành chính thức (Production).
Bước 2: Tạo ứng dụng và Trả lời câu hỏi
Trên bảng điều khiển, bạn chọn "Tạo ứng dụng". Sau đó, bạn sẽ phải làm một loạt các bài trắc nghiệm của Google:
- Ứng dụng có chứa quảng cáo không?
- Đánh giá độ tuổi (Content Rating) cho ứng dụng.
- Khai báo an toàn dữ liệu (Data Safety): App của bạn có thu thập định vị, email hay số điện thoại của người dùng không?
Bước 3: Tải lên file .aab
Ở bài trước, tệp bạn tạo ra là .aab. Hãy vào mục Thử nghiệm nội bộ (Internal Testing) hoặc Sản xuất (Production), tạo một bản phát hành mới và kéo thả tệp .aab đó vào. Cuối cùng, bấm "Gửi đi để xem xét" (Send for review).
3. Chinh phục Apple App Store & Cổng TestFlight (iOS)
Apple nổi tiếng với sự khắt khe. Quy trình duyệt app của họ giống như một buổi kiểm tra an ninh sân bay thực thụ.

Bước 1: Đăng ký Apple Developer Program
Để đưa app lên iOS, bạn phải đóng "tô thuế" cho Apple.
- Chi phí: 99$/năm (Phải gia hạn hàng năm, nếu không đóng tiền, app sẽ bị gỡ khỏi Store).
Bước 2: Cấu hình trên App Store Connect
Truy cập App Store Connect, đây là nơi quản lý mọi ứng dụng iOS của bạn. Hãy tạo một App mới, điền các thông tin Metadata và chọn đúng Bundle ID mà bạn đã cấu hình trong file app.json của Expo.
Bước 3: Đưa ứng dụng lên TestFlight
TestFlight là một ứng dụng tuyệt vời của Apple dành cho việc Test (Thử nghiệm).
Thay vì phát hành ngay ra toàn cầu, bạn tải file .ipa lên App Store Connect. Sau khi Apple xử lý xong (khoảng 15-30 phút), ứng dụng của bạn sẽ xuất hiện trên TestFlight.
- Bạn có thể tạo một "Public Link" (Đường link công khai) và gửi cho 10.000 người.
- Những người này chỉ cần cài app TestFlight trên iPhone, bấm vào link của bạn là có thể tải ứng dụng về dùng thử mà không cần máy tính!
4. "Vũ khí hạng nặng": Tự động hóa với EAS Submit
Ở các bước trên, tôi đã nhắc đến việc "kéo thả tệp" hoặc "tải file lên". Nếu làm theo cách thủ công, với iOS, bạn sẽ phải dùng một phần mềm trên máy Mac tên là Transporter để đẩy file lên Apple. Quá phức tạp!
May mắn thay, hệ sinh thái Expo đã lo luôn phần này cho bạn với lệnh eas submit.

Thay vì phải tự tải file về rồi lại up lên web, lệnh này sẽ ra lệnh cho máy chủ của Expo bắn thẳng file ứng dụng sang máy chủ của Google và Apple!
Để đẩy app Android lên Google Play:
eas submit -p android
Hệ thống sẽ hỏi bạn đường dẫn đến file xác thực của Google Cloud (Service Account Key) và tự động up file .aab lên Console.
Để đẩy app iOS lên App Store Connect / TestFlight:
eas submit -p ios
Bạn chỉ cần nhập Apple ID và Mật khẩu (App-specific password). Expo sẽ làm nốt phần còn lại. Khi lệnh chạy xong, bạn chỉ cần mở ứng dụng điện thoại TestFlight lên là thấy app đã nằm sẵn ở đó!
5. Chờ đợi "phán quyết"
Sau khi bạn ấn nút "Gửi để duyệt" (Submit for Review) trên cả hai nền tảng, công việc của bạn là... đi ngủ và chờ đợi.
- Google Play: Thường mất từ 1 đến 7 ngày.
- App Store: Nhanh thì 24h, chậm có thể lên tới 48h-72h.
Nếu ứng dụng bị từ chối (Reject), đừng hoảng sợ! Đây là chuyện "thường ngày ở huyện" với mọi lập trình viên. Apple/Google sẽ gửi một email giải thích rõ bạn vi phạm điều khoản nào (ví dụ: Thiếu nút Xóa tài khoản, Giao diện bị lỗi trên iPad). Bạn chỉ cần sửa lại code, eas build lại một bản mới và nộp lại.
Kết luận: Từ con số 0 đến một ứng dụng trên Store
Việc đưa ứng dụng lên Store đánh dấu sự chuyển mình từ một đoạn code nằm trên máy tính cá nhân trở thành một sản phẩm công nghệ có thể chạm đến toàn thế giới.
- Dùng Google Play Console để phát hành Android (Cần 25$, file
.aab). - Dùng App Store Connect để phát hành iOS (Cần 99$/năm, file
.ipa). - Dùng TestFlight để phân phối bản thử nghiệm iOS cực kỳ dễ dàng.
- Dùng lệnh
eas submitđể tự động hóa hoàn toàn khâu tải file lên máy chủ.
Chúc mừng bạn! Series học React Native từ cơ bản đến nâng cao của chúng ta về mặt lý thuyết đã hoàn tất trọn vẹn. Bạn đã đi từ con số 0 đến khi có một ứng dụng trên Store.
Tuy nhiên, với một kỹ sư phần mềm thực thụ, việc cứ phải gõ lệnh build rồi submit bằng tay mỗi lần sửa một dòng code là quá mất thời gian. Để khép lại series này một cách hoàn hảo nhất, hãy đến với bài tự động hóa toàn diện với CI/CD!