我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以在同一网络内通过更改调试服务器在我的android设备上运行)。
然而,我想构建一个APK,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序。
我看到有一节使用离线捆绑在iOS部分的文档。但我不知道如何在android上实现同样的功能。这可能吗?如果有,怎么做?
更新:关于这个问题的答案(Android无法加载JS包),据说离线包可以从开发服务器下载。但是当我从开发服务器获取包时,图像文件无法加载。
我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以在同一网络内通过更改调试服务器在我的android设备上运行)。
然而,我想构建一个APK,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序。
我看到有一节使用离线捆绑在iOS部分的文档。但我不知道如何在android上实现同样的功能。这可能吗?如果有,怎么做?
更新:关于这个问题的答案(Android无法加载JS包),据说离线包可以从开发服务器下载。但是当我从开发服务器获取包时,图像文件无法加载。
当前回答
如果你得到一个涉及index.android.js的错误。这是因为您正在使用新的React-native版本(我使用的是0.55.4) 只需将"index.android.js"替换为"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/
其他回答
对我来说,./gradlew assemblerrelease不再工作,但下面的可以。
./gradlew :app:assembleRelease
感谢这条评论。
你应该使用android studio来完成这个过程。这样更简单。但是首先在react原生应用目录下运行这个命令:
对于react-native的更新版本(例如:React原生0.49.0等等…)
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
对于react-native的旧版本(0.49.0及以下)
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在你的react原生应用目录中打开“android”文件夹,它会要求升级gradle和其他一些东西。去build->生成签名APK,并按照那里的指示。这真的很直接。
我有另一个解决办法:- 生成签名密钥 您可以使用keytool生成一个私有签名密钥。在Windows上,keytool必须从C:\Program Files\Java\jdkx.x.x_x\bin.运行
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
把我的释放钥匙放上去。在项目文件夹的android/app目录下的Keystore文件。
编辑文件android/app/build。Gradle在你的项目文件夹,并添加签名配置,
android {
....
signingConfigs {
release {
storeFile file('my-release-key.keystore')
storePassword 'yourpassword'
keyAlias 'my-key-alias'
keyPassword 'yourpassword'
}
}}}
buildTypes {release {signingConfig signingConfigs.release}}
和运行
gradlew assembleRelease
这将给你两个文件在android\app\build\outputs\apk App-release.apk和app-release-unsigned.apk 现在在你的android设备上安装app-release.apk。
只有这对我有用- yarn android -variant=release
试试下面,它会在你的根/android/app/build/outputs/apk/debug文件夹下生成一个app-debug.apk
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文件夹并运行
。/ gradlew assembleDebug