- vừa được xem lúc

React Native - Phân chia môi trường Development, Staging, Production

0 0 7

Người đăng: Pull Nguyễn

Theo Viblo Asia

Trong quá trình phát triển ứng dụng sẽ trải qua các giai đoạn development, staging, production,..v.v. Vì vậy việc phân chia các môi trường khác nhau giúp quản lý bất kỳ ứng dụng nào một cách dể dàng. Bài viết này nhằm chia sẻ một giải pháp để giải quyết vấn đề quản lý các môi trường trong React Native.

Mình sẽ sử dụng thư viện react-native-config

react-native: 0.71.7
react-native-config: 1.4.6

Bước 1: Cài đặt react-native-config , hiện tại version mới nhất 1.5.0 gặp lỗi gì đó không tích hợp vào được, mình sẽ sử dụng version 1.4.6

npm i react-native-config@1.4.6

Bước 2: Tạo các file env phân chia môi trường, trong đó .env là file root, khi build 1 môi trường sẽ ghi đè lên file .env root

.env
.env.development
.env.staging
.env.production

Cài đặt phía Android

Trong android/app/build.gradle chúng ta cần khai báo như sau:

project.ext.envConfigFiles = [ developmentdebug: ".env.development", developmentrelease: ".env.development", productiondebug: ".env.production", productionrelease: ".env.production"
]
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

Dưới mục buildTypes mình sẽ thêm flavorDimensionsproductFlavors. Dùng biến project.env để lấy giá trị các biến trong file môi trường.

flavorDimensions "default"
productFlavors { development { resValue "string", "app_name", project.env.get('APP_NAME') applicationIdSuffix ".dev" } production { resValue "string", "app_name", project.env.get('APP_NAME') }
}

Trong file app/src/main/res/values/strings.xml xoá dòng app_nameapp_name đã được lấy từ file .env

<resources> <!-- <string name="app_name">my_app</string> -->
</resources>

Thêm các câu lệnh build/run app trong file package.json

"android-dev-debug": "react-native run-android --variant=developmentdebug",
"android-dev-release": "react-native run-android --variant=developmentrelease",
"android-prod-debug": "react-native run-android --variant=productiondebug",
"android-prod-release": "react-native run-android --variant=productionrelease",

Chạy ứng dụng với môi trường development ở chế độ debug

npm run android-dev-debug

Chạy ứng dụng với môi trường production ở chế độ debug

npm run android-prod-debug

Cài đặt phía iOS

Ở mục Targets mình sẽ xoá target test đi, rồi từ target chính > bấm chuột phải vào > chọn Duplicate, sửa tên lại tạo môi trường mới

Ở từng target chọn Edit Schema > Build > Pre-actions > chọn New Run Script Action > thêm liên kết

echo ".env.production" > /tmp/envfile

Lưu ý với từng target chúng ta phải khai báo trong podfile, bên trong target chính

target 'my_app-Development' do inherit! :complete
end

Như vậy mỗi Target sẽ là 1 môi trường, chúng ta sẽ chạy ứng dụng theo từng target từng môi trường khác nhau.

Cảm ơn các bạn đã xem bài viết, chúc các bạn thực hiện thành công.

Bình luận

Bài viết tương tự

- vừa được xem lúc

[React Native] Dựng base App React Native - Swipe Panel with panResponder - P1

Hi All. Requirement. Bài toán đặt ra cho chúng ta những yêu cầu như sau:. Màn hình sẽ bao gồm các component:.

0 0 39

- vừa được xem lúc

Tìm hiểu về kiến trúc của React Native

Nếu đã làm việc với mobile app thì chắc hẳn các bạn không còn xa lạ gì với các tên React Native. Nó là một open-source hay còn gọi là Cross-Platform do Facebook tạo ra cho phép các nhà phát triển có t

0 0 587

- vừa được xem lúc

Những điều cần lưu ý và sử dụng Hook trong React (Phần 4)

IV. So sánh useCallback() và useMemo(). 1. useCallback() là gì.

0 0 150

- vừa được xem lúc

Flutter Vs Kotlin Multiplatform Mobile (KMM) Vs React Native

Trong phát triển đa nền tảng hiện nay chúng ta đang có nhiều tùy chọn như Flutter, React Native và bây giờ là Kotlin Multiplatform Mobile. Bây giờ mối quan tâm là chúng ta phải chọn công nghệ nào tron

0 0 107

- vừa được xem lúc

Tìm hiểu về vấn đề Re-render trong React và cách xử lý (Phần 1)

React là thư viện JavaScript phổ biến nhất để xây dựng giao diện người dùng .Và 2 framework sử dụng React đang được ưa chuộng chất đó là ReactJs và React Native .

0 0 179

- vừa được xem lúc

Hướng dẫn run project React Native trên Ubuntu với Expo, Android Studio

Hi, Eri Huỳnh xin chào mọi người! Thời gian gần đây, mình có bắt đầu tìm hiểu thêm về React-native. Và khó khăn đầu tiên mình gặp phải.

0 0 71