0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Xây Dựng Dự Án React Native Thành APK Đơn Giản

Đăng vào 4 tháng trước

• 5 phút đọc

Hướng Dẫn Xây Dựng Dự Án React Native Thành APK

Khi tham gia phát triển ứng dụng di động với React Native, việc hoàn thành mọi thứ từ thiết kế, lập trình đến gỡ lỗi có thể diễn ra khá suôn sẻ. Tuy nhiên, khi đến lúc xuất bản ứng dụng dưới dạng APK để chia sẻ, nhiều lập trình viên gặp phải trở ngại lớn. Nếu bạn đang ở trong tình huống tương tự, đừng lo lắng! Bài viết này sẽ hướng dẫn bạn từng bước để xây dựng thành công dự án React Native của mình thành APK bằng Expo CLI và EAS.

Mục Lục

  1. Cài Đặt EAS CLI
  2. Sửa Quyền PowerShell (Chỉ Windows)
  3. Xây Dựng Với EAS
  4. Tải Xuống & Thiết Lập BundleTool
  5. Lấy Chứng Chỉ Ký Của Bạn
  6. Trích Xuất APK Có Thể Cài Đặt
  7. Khi Bạn Cập Nhật Mã Nguồn...
  8. Lưu Ý Quan Trọng Về Tải Lên Play Store
  9. Kết Luận
  10. Câu Hỏi Thường Gặp

Cài Đặt EAS CLI

Đầu tiên, bạn cần cài đặt Expo Application Services (EAS) CLI toàn cục:

bash Copy
npm install -g eas-cli

👉 Tài liệu hướng dẫn

Nếu bạn đang sử dụng macOS và xây dựng cho iOS, bạn cũng cần có tài khoản nhà phát triển Apple.

Sửa Quyền PowerShell (Chỉ Windows)

Trước khi chạy các lệnh xây dựng trên Windows, bạn cần cho phép PowerShell thực thi các lệnh EAS:

bash Copy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

Lưu ý rằng lệnh này chỉ hoạt động cho một phiên. Khi bạn đóng terminal hoặc cmd prompt, bạn sẽ phải chạy lại lệnh này để cho phép thực thi các lệnh EAS.

Xây Dựng Với EAS

Chạy lệnh sau trong thư mục dự án React Native của bạn:

bash Copy
eas build --platform android

Đối với iOS, chỉ cần thay thế Android bằng iOS (nhưng bạn sẽ được yêu cầu nhập thông tin tài khoản nhà phát triển Apple).

👉 Nếu quá trình xây dựng thất bại, kiểm tra thông báo lỗi trong terminal và sửa chữa lỗi đó trong mã nguồn của bạn trước khi thử lại. Sau khi xây dựng thành công, tệp đã xây dựng của bạn sẽ ở định dạng .aab, có thể tải xuống từ bảng điều khiển Expo hoặc qua liên kết tải xuống hiển thị trong terminal sau khi xây dựng thành công.

Tải Xuống & Thiết Lập BundleTool

Google yêu cầu các tệp AAB để tải lên Play Store, nhưng để cài đặt trực tiếp, bạn sẽ cần một tệp APK. Đây là lúc BundleTool phát huy tác dụng.

Tải xuống bundletool-all-x.x.x.jar từ các bản phát hành chính thức trên GitHub. Tạo một thư mục (ví dụ: trên Desktop) và đặt cả tệp .aabBundleTool.jar vào trong đó.

👉 GitHub

Lấy Chứng Chỉ Ký Của Bạn

APK chưa ký sẽ không thể cài đặt trên thiết bị. Bạn sẽ cần chứng chỉ keystore, nhưng đừng lo, khi bạn xây dựng ứng dụng bằng lệnh "eas build" trong bước 3, Expo đã giúp bạn tạo ra một chứng chỉ keystore mà nó đã sử dụng để chuyển đổi dự án của chúng ta thành .aab file. Bây giờ chúng ta chỉ cần sử dụng chứng chỉ đó để chuyển đổi .aab file thành .apk file.

Chạy lệnh sau trong thư mục gốc của dự án:

bash Copy
eas credentials --platform android

Làm theo hướng dẫn để tải xuống credentials.json (chứa mật khẩu) và keystore.jks (tệp nhị phân) bằng cách sử dụng phím mũi tên để chọn "Tải xuống chứng chỉ từ EAS đến credentials.json" từ các tùy chọn có sẵn. Khi tải xuống xong, hãy giữ chúng an toàn vì chúng rất quan trọng.

Bây giờ, điều hướng trở lại thư mục bạn đã tạo trước đó chứa cả tệp .aab và tệp jar bundletool qua cmd prompt/terminal của bạn, xây dựng APK đã ký bằng các chi tiết chứng chỉ trong tệp credentials.json bằng cách chạy lệnh sau:

bash Copy
java -jar bundletool-all-x.xx.x.jar build-apks --bundle=YOUR_APP_NAME.aab --output=YOUR_APP_NAME.apks --ks=PATH_TO_KEYSTORE.JKS_FILE_FROM_PROJECT_ROOT_DIRECTORY --ks-key-alias=YOUR_KEYSTORE_ALIAS --ks-pass=pass:YOUR_KEYSTORE_PASSWORD --key-pass=pass:YOUR_KEY_PASSWORD --mode=universal

Ví dụ: đường dẫn “ks” trong đoạn mã trên nên trông như thế này:

bash Copy
--ks="C:\Users\Young\My Files\Coding\React Native Projects\ProductionReady\credentials\android\keystore.jks"

Nhưng hãy chắc chắn rằng đó là đường dẫn chính xác đến tệp keystore.jks của bạn trong dự án trên thiết bị cục bộ của bạn.

👉 Thay thế bundletool-all-x.xx.x.jar bằng tên thực tế của bundletool bạn đã tải xuống theo phiên bản ví dụ: bundletool-all-1.21.2.jar, và YourAppName.aab bằng tên tệp AAB của bạn, ks-key-alias bằng bí danh khóa của bạn, có thể tìm thấy trong tệp credentials.json mà chúng ta đã tạo ở bước 5. Bạn sẽ thấy tệp credentials.json trong thư mục gốc của dự án của bạn.

Bước này tạo ra một tệp .apks (thực chất chỉ là một tệp ZIP).

Trích Xuất APK Có Thể Cài Đặt

Vì .apks thực chất là một tệp ZIP, hãy đổi tên và trích xuất tệp .apk từ đó bằng cách chạy lệnh:

bash Copy
Rename-Item -Path YourApp.apks -NewName YourApp.zip
Expand-Archive -Path YourApp.zip -DestinationPath extracted-apks

Trong thư mục extracted-apks mới tạo, bạn sẽ tìm thấy universal.apk 🎉. Đó là APK đã ký, có thể cài đặt mà bạn có thể cài đặt trên thiết bị, chia sẻ với bạn bè, người thử nghiệm, v.v.

Khi Bạn Cập Nhật Mã Nguồn...

Mỗi khi bạn thực hiện thay đổi, chỉ cần:

  • Đẩy mã lên GitHub (để luôn có phiên bản cập nhật từ xa)
  • Chạy eas build --platform android hoặc ios, tùy trường hợp
  • Chuyển đổi AAB mới thành APK theo cùng một quy trình

Lưu Ý Quan Trọng Về Tải Lên Play Store

Đối với Google Play Store, bạn phải tải lên tệp AAB, không phải APK.

APK chủ yếu dùng để thử nghiệm, chia sẻ hoặc cài đặt thủ công.

Kết Luận

Nếu bạn đã từng cảm thấy bế tắc sau khi xây dựng một dự án React Native hoàn chỉnh nhưng không thể tạo APK, hãy tin tôi, tôi đã từng ở đó. Thật khó chịu, nhưng giải pháp lại đơn giản khi bạn biết các bước.

Giờ đây, bạn có thể:

  • Xây dựng với EAS
  • Chuyển đổi AAB → APK với BundleTool
  • Ký đúng cách bằng keystore của bạn
  • Chia sẻ hoặc cài đặt trực tiếp

💬 Bạn có gặp phải vấn đề tương tự trong quá trình phát triển của mình không? Hãy chia sẻ trải nghiệm của bạn trong phần bình luận, tôi rất muốn nghe!

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

1. Tôi có thể sử dụng EAS CLI trên hệ điều hành nào?

EAS CLI hỗ trợ trên cả macOS và Windows.

2. Tôi cần tài khoản phát triển nào để xây dựng cho iOS?

Bạn cần có tài khoản nhà phát triển Apple để xây dựng ứng dụng cho iOS.

3. Làm thế nào để khắc phục lỗi khi xây dựng thất bại?

Kiểm tra thông báo lỗi trong terminal và sửa chữa mã nguồn của bạn trước khi thử lại.

4. BundleTool có cần thiết không?

Có, nếu bạn muốn chuyển đổi tệp AAB thành APK để cài đặt trực tiếp.

5. APK đã ký có thể cài đặt trên thiết bị nào?

APK đã ký có thể cài đặt trên tất cả các thiết bị Android hỗ trợ.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào