자바스크립트/React Native
React-native Android release Build APK 생성
RightHot
2019. 10. 4. 13:01
React-native Android release Build APK 생성
리액트 앱을 안드로이드 마켓에 출시하기위해 릴리즈 빌드 apk 만들기
- 서버 네트워크 통신 허용따라서 아래의 방법을 따라서 서버 ip를 허용해줘야한다.
/android/app/src/main/AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">[ 아이피 추가 ]</domain> </domain-config> </network-security-config>
<application android:networkSecurityConfig="@xml/react_native_config" ... > </application>
- Android/app/src/release/res/xml/react_native_config.xml
- 안드로이드 릴리즈 빌드에선 암호화 되지 않은 않은 서버의 http 통신은 차단된다.
- 매니페스트 수정/android/app/src/main/AndroidManifest.xml
<application ... android:usesCleartextTraffic="true" // <-- added this ...> ... </application>
- 네트워크 트래픽 여부 true 로 설정
- 빌드
cd android
./gradlew assembleRelease -x bundleReleaseJsAndAssets
cd android ./gradlew bundleRelease cd android ./gradlew app:assembleRelease
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
- ERROR
Error: ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
에러시
mkdir android/app/src/main/assets
rm -rf ./android/app/src/main/res/drawable-*
rm -rf ./android/app/src/main/res/raw
- keytool -genkey -v -keystore your_key_name.keystore -alias your_key_alias -keyalg RSA -keysize 2048 -validity 10000
yarn react-native bundle --reset-cache --entry-file index.js --platform ios --bundle-output test.bundle --dev false