因为我是新的反应本机,所以如果有任何错误的步骤,让我知道。
我已经按照文档使用命令构建了一个react原生android应用程序
react-native安卓
在设备上运行时,使用了以下命令
react-native运行android
这给了我2 apk文件在我的projectfolder/android/app/build/outputs/apk的输出
现在,当我安装这个apk安装后,它要求一个开发服务器连接到捆绑JS。但我的要求是,用户不需要与开发服务器作斗争,他只需要安装apk,一切都完成了。
已经通过了一些stackoverflow问题,但对构建不需要开发服务器的unsigned apk没有帮助。
你们能帮我找到如何在react native中构建和unsigned apk的方法吗?
对我来说,在项目目录中运行以下命令。
对于react原生旧版本(你会在根目录中看到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 ../
对于react原生新版本(你只需要在根目录中看到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文件将在以下位置生成:
Gradle < 3.0: android/app/build/outputs/apk/
Gradle 3.0+: android/app/build/outputs/apk/release/
您可以为此使用两个扩展。这是添加到react-native的设置:
disableDevInDebug: true:在调试buildType中禁用开发服务器
bundleInDebug: true:将jsbundle添加到调试buildType。
最终的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本地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设备验证连接的设备。
最后运行react-native run-android,它会在你的手机上安装调试apk,你可以在开发服务器上运行它
注意:
从0.49.0开始,入口点是一个index.js
gradlew assemblerrelease只生成不能安装的release-unsigned apks