개발 서버 없이 장치에 서명되지 않은 apk를 빌드하고 설치하시겠습니까?
제가 리액티브가 처음이라 스텝에 이상이 있으면 알려주세요.
나는 문서에 따라 명령어를 사용하여 반응 네이티브 안드로이드 앱을 만들었습니다.
반응형 native 안드로이드
장치에서 실행하는 동안 다음 명령이 사용되었습니다.
반응-native 런-
내 프로젝트 폴더/ android/ app/ 빌드/ outputs/ apk에 있는 2 apk 파일의 출력을 제공합니다.
설치 후 이 apk를 설치할 때 JS 번들에 연결할 개발 서버를 요청합니다.하지만 사용자가 apk를 설치하면 모든 것이 완료되기 때문에 개발 서버와 씨름할 필요가 없습니다.
스택 오버플로우 질문을 좀 거쳤으나 개발 서버가 필요 없는 서명되지 않은 apk를 구축하는 데는 도움이 되지 않습니다.
리액티브 네이티브에서 에이피를 구축하고 서명하지 않은 방법을 찾는 것을 도와줄 수 있습니까?
디버그 빌드를 위한 번들을 수동으로 만들어야 합니다.
번들 디버그 빌드:
#React-Native 0.59
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res
#React-Native 0.49.0+
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
#React-Native 0-0.49.0
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
그런 다음 번들링 후 APK를 구축합니다.
$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `android/app/build/outputs/apk`
추신: 그라들 스크립트를 수정하는 것도 방법이 될 수 있습니다.
반응 버전 0.62.1
루트 프로젝트 디렉토리에
디렉토리를 만들지 않으면 디렉토리 안드로이드/app/src/main/assets/가 이미 있는지 확인하고 새 파일을 만든 후 다음과 같이 저장합니다.index.android.bundle
Android/app/src/main/assets/index와 같이 파일을 입력합니다. android.보따리를 꾸리다
그 후에 이것을 실행합니다.
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/
cd android && ./gradlew assembleDebug
을 수 .apk
app/build/outputs/apk/debug/app-debug에서.apk
그 단계를 따라주시기 바랍니다.
js를 묶습니다.
프로젝트 루트에 index. android.js가 있는 경우 실행합니다.
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
프로젝트 루트에 index.js가 있으면 실행합니다.
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
디버그 apk 만들기:
cd android/
./gradlew assembleDebug
그러면 여기서 apk를 찾을 수 있습니다.
cd app/build/outputs/apk/
저와 함께 프로젝트 디렉토리에서 다음 명령을 실행합니다.
반응 네이티브 이전 버전의 경우(루트에 index.android.js가 표시됨):
mkdir -p android/app/src/main/assets && rm -rf android/app/build && react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew clean assembleRelease && cd ../
반응 네이티브 새 버전의 경우(root에 index.js만 표시됨):
mkdir -p android/app/src/main/assets && rm -rf android/app/build && 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 && cd android && ./gradlew clean assembleRelease && cd ../
apk 파일은 다음 위치에서 생성됩니다.
- 그라들 < 3.0 : 안드로이드/앱/빌드/출력/apk/
- 그라들 3.0+: 안드로이드/앱/빌드/출력/apk/릴리즈/
첫 번째 응답을 따라간 후, 다음을 사용하여 앱을 실행할 수 있습니다.
react-native run-android --variant=debug
그리고 당신의 앱은 패키지 없이 실행될 것입니다.
반응 네이티브 0.57 현재 gradle이 번들을 찾을 것으로 예상하는 디렉토리와 자산이 변경되었기 때문에 이전에 제공된 답변 중 어떤 것도 더 이상 작동하지 않습니다.
리액티브 네이티브 번들이 없는 간편한 방법
은 입니다.react-native bundle
할 수 있습니다. 단순히합니다만 . 하지만 단순히 당신의 명령을 수정하는 것으로.app/build.gradle
일.
project.ext.react
지도를 그리다app/build.gradle
파일을 추가합니다.bundleInDebug: true
만약 당신이 그것이 당신이 원하지 않는다면.--dev
및 드음).devDisabledInDebug: true
동일한 맵으로 진입합니다.
반응성 네이티브 번들 포함
로 를 경우.react-native bundle
e./gradlew assembleDebug
번들과 자산을 사용하여 APK를 생성하려면 번들과 자산을 올바른 경로에 배치해야 합니다. 그래들이 찾을 수 있는 곳에서 해당 번들과 자산을 찾을 수 있습니다.
네이티브 으로 이 는 0.57입니다.android/app/build/generated/assets/react/debug/index.android.js
그리고.android/app/build/generated/res/react/debug
자산에 대해서는 및 하기 위한 는 다음과 같습니다따라서 번들 및 자산과 함께 APK를 수동으로 번들링하고 구축하는 전체 명령어는 다음과 같습니다.
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/generated/assets/react/debug/index.android.bundle --assets-dest ./android/app/build/res/react/debug
그리고 나서.
./gradlew assembleDebug
번들 및 자산 경로
수 있습니다.gradle . 길들이 .react.gradle
에에 을 넣습니다.node_modules/react-native
디렉토리 입니다..def jsBundleDir =
그리고.def resourcesDir =
찾는 gradle합니다.
dev-server 없이 디버그 APK 생성
개발 서버 없이 실행할 수 있는 디버그 APK(테스트용)를 정말로 생성하고 싶다면, Congrats!당신을 도우러 왔습니다.:)
다에 두 말하고 있습니다.react-native bundle ...
그리고 나서.gradlew assembleDebug
그러나 개발 서버가 없으면 생성된 APK는 여전히 작동하지 않습니다.많은 조사와 시도 끝에 그라들 파일(2단계)을 변경해야 한다는 것을 알게 되었습니다.다음 단계만 수행하면 됩니다.
- 에서는 로 .
/android/app/src/main
eassets
- 편집하다
android > app > build.gradle
project.ext.react = [
...
bundleInDebug: true, // add this line
]
- 반응 네이티브 프로젝트의 루트 디렉터리에서 이 명령 실행
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
- Android .
cd android
- 그리고 다음 명령을 실행합니다.
gradlew assembleDebug
에서 에서 assemblyDebug오)
이렇게 하면 생성됩니다.app-debug.apk
줄을 지어 들어오다android/app/build/outputs/apk/debug
dev-server리 할 수
이에 사용할 수 있는 확장 기능은 두 가지입니다.다음을 설정하기 위해 반응 네이티브에 추가됩니다.
disableDevInDebug: true
: 디버그 빌드에서 개발 서버를 사용하지 않도록 설정합니다.유형bundleInDebug: true
: debug buildType에 jsbundle을 추가합니다.
그래서, 당신의 마지막.project.ext.react
인에android/app/build.gradle
다 와 같이 .
project.ext.react = [
enableHermes: false, // clean and rebuild if changing
devDisabledInDev: true, // Disable dev server in dev release
bundleInDebug: true, // add bundle to dev apk
]
다른 사용자가 최근에 이와 같은 문제에 휘말릴 경우를 대비하여 React Native 0.59.8(RN 0.60으로 테스트됨)을 사용하고 있으며 다른 답변 중 일부를 확인할 수 있습니다. 다음 단계가 있습니다.
장치에 설치된 최신 컴파일된 버전의 앱을 제거합니다.
실행.
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
를
cd android/ && ./gradlew assembleDebug
앱 디버그를 가져옵니다.apk in 폴더 안드로이드/앱/빌드/ outputs/apk/
행운을 빕니다.
Windows(윈도우) 사용자의 경우 모든 단계가 제대로 수행된 경우: https://facebook.github.io/react-native/docs/signed-apk-android.html
실행만 하면 됩니다. gradlew assembleRelease
파일은 다음과 같습니다.
- 앱 출시apk
- 앱 릴리스 미정렬의apk
위치: E:\YourProjectName\android\app\build\outputs\apk
모바일에서 실행할 수 있도록 테스트 목적으로 서명되지 않은 apk 버전을 생성할 수 있습니다.
처음에는 여기서 가장 많이 언급된 빨간색 화면 오류가 발생했습니다. 하지만 여기서 언급된 것과 동일한 것을 따랐고 그것은 나에게 효과가 있었습니다.
작업 디렉토리의 콘솔에서 다음 네 가지 명령 실행
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
cd android
gradlew assembleDebug
gradlew assembleRelease
그런 다음 APK 파일은 안드로이드\app\build\outputs\apk\debug\app-debug에서 생성됩니다.apk
꽤도 .at least on page 1
저한테는 통하지 않는군요 된 성적 를 좀 더 보았습니다.그래서 리액트에 의해 등록된 성적 과제를 좀 더 깊이 들여다 보았습니다.
만 더하면 됩니다.bundleInDebug : true
만 G의이에서 바와 .
를 ./gradlew assembleDebug
아니면gradle.bat assembleDebug
Android 폴더의 사용자 환경을 기반으로 합니다.
하면 가 가능한 이 생성됩니다.android/app/build/outputs/apk/debug
리액트 네이티브 0.55.4에 있습니다. 기본적으로 수동으로 번들을 구성해야 했습니다.
react-native bundle --dev false --platform android --entry-file index.js --bundle-
output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-
dest ./android/app/build/intermediates/res/merged/debug
그런 다음 usb를 통해 장치를 연결하고 usb 디버깅을 활성화합니다.합니다를 하여 연결된 합니다.adb devices
.
으로 실행 react-native run-android
그 apk로 잘 할 수 .
참고:
- 은 0.0부터 진입점은 단일입니다.
index.js
gradlew assembleRelease
은 apk합니다를 설치할 수 합니다.
빌드를 변경하는 솔루션을 찾았습니다.다음과 같은 유형:
buildTypes {
release {
signingConfig signingConfigs.release
}
}
더하다devDisabledInDebug: true
.project.ext.react
파일에 있습니다를 만들다
dev-server 없이 디버그 APK 생성
개발 서버 없이 실행할 수 있는 디버그 APK(테스트 목적)를 생성하려는 경우.
- 에서는 로 .
/android/app/src/main
eassets
- 편집하다
android > app > build.gradle
universalApk true // If true, also generate a universal APK
- 반응 네이티브 프로젝트의 루트 디렉터리에서 이 명령 실행
npx 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
- Android .
cd android
- 그리고 다음 명령을 실행합니다.
./gradlew assembleDebug
에서 에서 assemblyDebug오)
그냥 이렇게 해요.
그리고 앱을 장치에 설치하려면 cmd만 실행하면 됩니다.
adb install 'path/add-debug.apk'
나에게도 일어난 일인데, 내가 변수를 가져오는 것을 잊어버린 것 같습니다.
언급URL : https://stackoverflow.com/questions/35283959/build-and-install-unsigned-apk-on-device-without-the-development-server
'code' 카테고리의 다른 글
네트워크 연결 끊김으로 인한 Ajax 호출 실패를 감지하는 방법 (0) | 2023.10.15 |
---|---|
반응형 이미지 맵 (0) | 2023.10.15 |
Wordpress REST API 사용자 지정 테이블을 사용하는 사용자 지정 끝점 생성 (0) | 2023.10.15 |
size_tvsint in C++ 및/또는 C (0) | 2023.10.15 |
PowerShell로 응용프로그램 실행 및 완료될 때까지 기다립니다. (0) | 2023.10.15 |