Cấu Hình React Native CodePush Với Máy Chủ Tùy Chỉnh
Bạn đang phát triển một ứng dụng bằng React Native và bạn cần thực hiện cập nhật nhưng không muốn trải qua quy trình phê duyệt của App Store hay Google Play? CodePush chính là giải pháp cho bạn! Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình CodePush với máy chủ tùy chỉnh của riêng bạn, giúp việc cập nhật ứng dụng trở nên dễ dàng hơn bao giờ hết. Hãy cùng bắt đầu!
Bước 1: Cài Đặt và Cấu Hình Máy Chủ CodePush Tùy Chỉnh
Để đơn giản hóa việc triển khai, chúng ta sẽ sử dụng Docker. Làm theo các bước sau:
Clone Repository
Mở terminal và chạy lệnh sau để sao chép mã nguồn máy chủ CodePush:
git clone https://github.com/shm-open/code-push-server.git
cd code-push-server
Chỉnh Sửa Cấu Hình
Tiếp theo, mở file docker-compose.yml
để thay đổi các thông số cấu hình:
vim docker-compose.yml
Thay thế dòng YOUR_MACHINE_IP
trong DOWNLOAD_URL
bằng địa chỉ IP hoặc tên miền của bạn.
Triển Khai Docker
Sau khi đã chỉnh sửa xong, hãy chạy lệnh sau để khởi động máy chủ:
docker-compose up -d
Kiểm Tra Trạng Thái Máy Chủ
Để đảm bảo rằng máy chủ đang hoạt động, bạn có thể gửi một yêu cầu HTTP:
curl -I http://YOUR_CODE_PUSH_SERVER_IP:3000/
Nếu máy chủ hoạt động bình thường, bạn sẽ nhận được phản hồi tương tự như sau:
HTTP/1.1 200 OK
...
Và giờ bạn đã có một máy chủ CodePush riêng để cập nhật ứng dụng của mình mà không bị phụ thuộc vào Microsoft! 🚀
Bước 2: Cài Đặt CodePush Vào Dự Án React Native
Để bắt đầu sử dụng CodePush trong ứng dụng của bạn, hãy cài đặt gói react-native-code-push
:
npm install --save react-native-code-push
Bước 3: Cấu Hình URL Cho Máy Chủ Tùy Chỉnh
Đối Với Android
Mở tệp android/app/src/main/res/values/strings.xml
và thêm dòng sau vào bên trong thẻ <resources>
:
<string moduleConfig="true" name="CodePushServerUrl">https://your-custom-server.com</string>
Thay thế https://your-custom-server.com
bằng URL máy chủ của bạn.
Đối Với iOS
Mở tệp Info.plist
trong thư mục iOS của dự án và thêm mục sau:
<key>CodePushServerURL</key>
<string>https://your-custom-server.com</string>
Đừng quên thay thế URL cho đúng.
Bước 4: Sử Dụng CodePush Trong Ứng Dụng React Native
Trong mã nguồn ứng dụng, bạn có thể sử dụng CodePush như sau:
javascript
import codePush from 'react-native-code-push';
let codePushOptions = { checkFrequency: codePush.CheckFrequency.ON_APP_RESUME };
class App extends Component { /* Ứng dụng của bạn */ }
App = codePush(codePushOptions)(App);
Bước 5: Sử Dụng CodePush CLI Với Máy Chủ Tùy Chỉnh
Cài đặt CodePush CLI:
npm install -g code-push-cli
Đăng nhập vào máy chủ tùy chỉnh:
code-push login https://your-custom-server.com
Sau khi đăng nhập thành công với tài khoản mặc định, bạn sẽ nhận được một token. Hãy sao chép token này để sử dụng tiếp.
Tạo Ứng Dụng Trên Máy Chủ CodePush Tùy Chỉnh
Sử dụng lệnh sau để tạo ứng dụng trong máy chủ:
code-push app add [APP_NAME] [PLATFORM] [DESCRIPTION]
Ví dụ cho iOS:
code-push app add MyApp-ios ios "Mô tả ứng dụng iOS"
Ví dụ cho Android:
code-push app add MyApp-android android "Mô tả ứng dụng Android"
Sau khi tạo ứng dụng, bạn sẽ nhận được Deployment Key
. Hãy sử dụng Deployment Key
này trong ứng dụng React Native của bạn.
Bước 6: Đóng Gói và Phát Hành Bản Cập Nhật
Để đóng gói ứng dụng, sử dụng lệnh sau:
Ví dụ cho Android:
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output ./code-push/index.android.bundle --assets-dest ./code-push
Ví dụ cho iOS:
npx react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./code-push/main.jsbundle --assets-dest ./code-push
Để phát hành bản cập nhật, sử dụng lệnh sau:
code-push release-react [APP_NAME] [PLATFORM] -d [DEPLOYMENT_NAME]
Ví dụ cho iOS:
code-push release-react MyApp-ios ios -d Production
Ví dụ cho Android:
code-push release-react MyApp-android android -d Production
Hãy chắc chắn thay thế các tham số [APP_NAME]
, [PLATFORM]
, và [DEPLOYMENT_NAME]
bằng thông tin của bạn.
Kết Luận
Với hướng dẫn trên, hy vọng bạn đã có thể tự cấu hình CodePush với máy chủ tùy chỉnh một cách dễ dàng và nhanh chóng. Điều này sẽ giúp việc cập nhật ứng dụng của bạn trở nên đơn giản hơn rất nhiều mà không cần tới sự can thiệp từ các nền tảng phân phối ứng dụng truyền thống. Chúc bạn thành công!
source: viblo