Android용 반응 네이티브 애플리케이션을 위한 환경 기반 apk 만들기
따라서 장치에 패키지 이름
com.org.weatherapp
으로 설치된 응용 프로그램이 있는 경우 한 번에 설치되는 유일한 인스턴스가 되며 동일한 패키지 이름을 가진 응용 프로그램은 기존 설치를 업데이트합니다.따라서 팀이 애플리케이션의 여러 복사본을 설치할 수 있도록 허용해야 한다면 어떻게 해야 할까요?
테스터가 자신의 장치에 프로덕션 릴리스를 설치하고 개발 환경에서 새로운 기능을 테스트해야 하는 경우와 같이 프로덕션 복사본을 제거하여 일시적으로만 사용할 개발 apk를 설치해야 한다면 끔찍할 것입니다.
현실에서 일어나는 일 같지 않습니까?
네 말이 맞아, 그렇지 않아.
react-native에서 서로 다른 환경에 대해 서로 다른 apk를 만드는 방법을 보여드리겠습니다. 그러면 모든 기기에 동시에 설치할 수 있습니다!
뿐만 아니라 다른 응용 프로그램 실행기 아이콘도 사용할 예정이므로 다른 복사본을 쉽게 구분할 수 있습니다.
애플리케이션의 각 사본에 다른 패키지 이름을 사용하여 시작합니다.
com.org.weatherapp.test // For test environment
com.org.weatherapp.dev // For dev environement
com.org.weatherapp // For production environment
세 가지 다른 패키지 이름을 사용하고 있지만 필요에 따라 여러 환경에서 작동합니다. 모든 사본에는 고유한 패키지 이름이 있어야 하며, 그렇지 않으면 기존 설치를 덮어씁니다.
1. 각 환경에 대한 자산 생성
Android Studio를 열고 왼쪽 메뉴를
Android
로 변경하고 자산 폴더를 마우스 오른쪽 버튼으로 클릭한 다음 New -> Image Asset
를 클릭합니다.원하는 이름과 기타 속성을 구성하고
Finish
를 클릭합니다.각 환경에 대해 반복하고 적절하게 이름을 지정합니다.
ic_test_launcher.png // For test environment
ic_dev_launcher.png // For dev environement
ic_launcher.png // For production environment
Android Studio는 자산의 모든 변형을 생성하고 이를 mipmap 및 드로어블 폴더에 넣습니다.
2. 환경에 따라 다른 아이콘 사용
이제 각 환경에서 다른 실행기 아이콘을 사용하도록 응용 프로그램에 지시해야 합니다.
android/app/src/main/AndroidManifest.xml
를 열고 다음 줄을 변경합니다. <application
android:name=".MainApplication"
android:allowBackup="false"
android:label="@string/app_name"
--- android:icon="@mipmap/ic_launcher"
--- android:roundIcon="@mipmap/ic_launcher_round"
+++ android:icon="${appIcon}"
+++ android:roundIcon="${appIconRound}"
android:theme="@style/AppTheme">
...
...
</application>
앱 런처 아이콘에 자리 표시자를 사용합니다. 다음 단계에서 정의하겠습니다.
3. 다양한 애플리케이션 특징 정의
우리는 다양한 애플리케이션 특징을 정의해야 합니다.
android/app/build.gradle
를 열고 다음 줄을 추가합니다. android {
...
defaultConfig {
...
}
flavorDimensions "version"
productFlavors {
test {
applicationIdSuffix ".test"
manifestPlaceholders = [
appIcon: "@mipmap/ic_test_launcher",
appIconRound: "@mipmap/ic_test_launcher_round"
]
}
dev {
applicationIdSuffix ".dev"
manifestPlaceholders = [
appIcon: "@mipmap/ic_dev_launcher",
appIconRound: "@mipmap/ic_dev_launcher_round"
]
}
production {
manifestPlaceholders = [
appIcon: "@mipmap/ic_launcher",
appIconRound: "@mipmap/ic_launcher_round"
]
}
}
}
그래서 우리는 여기서 무엇을 했습니까?
com.org.weatherapp.test
이고 dev apk의 패키지 이름은 com.org.weatherapp.dev
입니다. 아무 것도 추가하고 싶지 않기 때문에 프로덕션용으로 applicationIdSuffix를 정의하지 않았습니다. AndroidManifest.xml
에서 정의한 변수로, 매니페스트 파일의 자리 표시자를 대체하는 데 사용됩니다. 이렇게 하면 환경마다 다른 아이콘을 사용할 수 있습니다. 4. 빌드 스크립트 업데이트
다양한 맛의 APK를 만드는 데 사용할 빌드 스크립트를 업데이트해야 합니다.
package.json
를 열고 다음 줄을 추가합니다."scripts": {
"bundle": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest",
"android": "react-native run-android --variant testDebug --appId com.org.weatherapp.test",
"dev-apk": "yarn bundle && cd android && ./gradlew assembledevDebug",
"prod-apk": "yarn bundle && cd android && ./gradlew assembleproductionDebug"
}
그게 다야!
이제 모든 기기에 애플리케이션의 모든 기능을 동시에 설치할 수 있습니다.
이 가이드가 도움이 되셨다면 좋아요를 남겨주세요. 질문이나 의견이 있으시면 아래에 남겨주세요. 감사합니다 👍
Reference
이 문제에 관하여(Android용 반응 네이티브 애플리케이션을 위한 환경 기반 apk 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jazibjafri/making-environment-based-apks-for-a-react-native-application-for-android-4kdc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)