앱을 만들었습니다. 로컬 시뮬레이터 (및 디버그 서버를 변경하여 동일한 네트워크 내의 Android 기기에서도)에서 실행할 수 있습니다.
그러나 개발 서버에 액세스하지 않고도 다른 사람에게 보낼 수있는 APK를 작성하고 응용 프로그램을 테스트 할 수 있기를 원합니다.
문서의 iOS에서 오프라인 번들 사용 섹션이 있습니다. 그러나 안드로이드에서 똑같이 달성하는 방법을 알 수 없었습니다. 이게 가능해? 그렇다면 어떻게해야합니까?
업데이트 :이 질문에 대한 답변 ( 응답 네이티브 안드로이드가 JS 번들을로드하지 못했습니다 ) 오프라인 번들은 개발 서버에서 다운로드 할 수 있다고합니다. 그러나 개발 서버에서 번들을 확보하면 이미지 파일을로드 할 수 없습니다.
- 답변 # 1
- 답변 # 2
apk에 서명하려면 키를 만들어야합니다. 아래를 사용하여 키를 만드십시오.
gradlew assembleRelease
프롬프트가 표시되면 암호를 사용하십시오
키가 생성되면 키를 사용하여 설치 가능한 빌드를 생성하십시오 :
android/app/build/outputs/apk/app-release.apk
gradle을 사용하여 빌드 생성
keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000
휴대 전화에 APK를 업로드하십시오. 와이즈 비즈 플래그는 기존 앱을 대체합니다 (있는 경우).
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/
자세한 설명은 여기에 있습니다 : https://facebook.github.io/react-native/docs/signed-apk-android.html
업데이트: @shashuec 및 @Fallen의 의견을 기반으로
오류가 발생하면
와이즈 비즈mkdir android/app/src/main/assets를 실행
- 답변 # 3
이 과정에서 android studio를 사용해야합니다. 더 간단합니다. 하지만 먼저 반응 네이티브 앱 디렉토리에서이 명령을 실행하십시오 :
cd android && ./gradlew assembleRelease
그런 다음 android studio를 사용하여 기본 앱 디렉토리에 반응하는 'android'폴더를 열면 gradle 및 기타 항목을 업그레이드하라는 메시지가 표시됩니다. 빌드->서명 된 APK 생성으로 이동하여 지침을 따르십시오. 정말 간단합니다.
- 답변 # 4
이 명령을 실행하십시오 :
-r
adb install -r ./app/build/outputs/apk/app-release-unsigned.apk
와 함께 . - 답변 # 5
React Native 0.49 이상
터미널의 프로젝트 디렉토리로 가서 그 명령을 실행해야합니다
ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
0.49 미만인 경우
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/
그런 다음 android studio를 사용하여 기본 앱 디렉토리에 반응하는 'android'폴더를 열면 gradle 및 기타 항목을 업그레이드하라는 메시지가 표시됩니다. 빌드->서명 된 APK 생성으로 이동하여 지침을 따르십시오. 알았어.
react-native run-android --variant=release
관련 자료
- html - 서버없이 을 사용할 수 있습니까?
- javascript - Nodejs 서버를 내려 놓지 않고 스트림을 중지하는 방법
- rust - 각 줄을 새 단락으로 변환하지 않고 매크로에서 문서를 생성하려면 어떻게해야합니까?
- delphi - GUI가없는 REST 서버
- ios - firebase sdk없이 (예 - rest를 통해) fcm 등록 토큰을 생성하는 방법은 무엇입니까?
- concurrency - inetd는 여러 클라이언트를 동시에 처리하는 부분에 영향을주지 않고 서버 프로그램을 단순화합니까?
- SQL Server에서 고유 한 숫자 ID를 생성하는 방법 (ID를 사용하지 않음)?
- Apollo Server를 사용할 때 schemagraphql 파일을 어떻게 생성합니까?
- 중개 서버없이 클라이언트 측 브라우저에서 SSH를 통해 서버에 연결
- javascript - 꺼내지 않고 스트라이프를 react-native expo sdk36과 통합하는 방법은 무엇입니까?
- 내 응용 프로그램에 페이스 북 로그인을 통합하지 않고 api를 사용하여 일부 페이지의 공개 이벤트 데이터베이스를 생성 할 수 있습니다
- asp.net core - Windows Server 2016에서 IIS없이 SSL 인증서를 설치하는 방법은 무엇입니까?
- javascript : Instagram 복제 오류 : 개체가 React 자식으로 유효하지 않습니다.
- javascript : PC에서 작동하지만 iOS 또는 Android에서는 작동하지 않는 Google Sheet에 데이터를 추가하기위한 React Component
- javascript : Object.values 함수가 예상대로 JSX를 반환하지 않습니다.
- Android에서 gRPC로 네트워크 연결을 끊을 때 메시지 재전송을 유지하는 방법은 무엇입니까? 구성 keepAlive를 시도했지만 작동하지 않습니다.
- javascript : React Native-탭 내비게이터 버튼 재정의, 스타일이 엉망이 됨
- javascript : CMD (Firebase 클라우드 기능)에서 오류 표시를 사용한 Rezorpay 통합
- android : 반응 네이티브 환경 설치 문제를 해결하는 방법
- Android Emulator가 화면에 Google지도를 표시하지 않음
- android : 네이티브 앱에 반응하기 위해 앱 구매를 추가하는 방법은 무엇입니까?
- javascript : React Native Function에서 소품 변경시 렌더링
Aditya Singh의 답변에 따라 생성 된 (서명되지 않은) apk가 휴대 전화에 설치되지 않습니다. 여기 지침을 사용하여 서명 된 apk를 생성해야했습니다.
다음은 나를 위해 일했습니다 :
와이즈 비즈 배치
my-release-key.keystore
에 파일 프로젝트 폴더의 디렉토리. 그런 다음 파일을 편집하십시오. 와이즈 비즈 다음을 추가하십시오 (*** 교체 올바른 키 저장소 비밀번호, 별명 및 키 비밀번호를 사용하여)MacOS를 사용하는 경우 비밀번호를 일반 텍스트로 저장하는 대신 여기 지침에 따라 키 체인에 비밀번호를 저장할 수 있습니다.
app/build.gradle을 편집하고 다음이 있는지 확인하십시오 (signingConfigs signingConfig가있는 섹션을 추가해야 할 수도 있음).
그런 다음
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=**** MYAPP_RELEASE_KEY_PASSWORD=****
명령을 실행하십시오. ,Windows의 경우'cd android'를 실행 한 다음
... android { ... defaultConfig { ... } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { release { ... signingConfig signingConfigs.release } } } ...
를 실행하십시오.cd android && ./gradlew assembleRelease
에서서명 된apk를 찾습니다.