我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以在同一网络内通过更改调试服务器在我的android设备上运行)。
然而,我想构建一个APK,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序。
我看到有一节使用离线捆绑在iOS部分的文档。但我不知道如何在android上实现同样的功能。这可能吗?如果有,怎么做?
更新:关于这个问题的答案(Android无法加载JS包),据说离线包可以从开发服务器下载。但是当我从开发服务器获取包时,图像文件无法加载。
我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以在同一网络内通过更改调试服务器在我的android设备上运行)。
然而,我想构建一个APK,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序。
我看到有一节使用离线捆绑在iOS部分的文档。但我不知道如何在android上实现同样的功能。这可能吗?如果有,怎么做?
更新:关于这个问题的答案(Android无法加载JS包),据说离线包可以从开发服务器下载。但是当我从开发服务器获取包时,图像文件无法加载。
当前回答
使用android studio为react的android项目生成签名apk也是一个很好的和简单的选择,在android studio中打开react的android项目并生成击键和签名apk。
其他回答
如果您得到“Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES].”
我尝试使用@Aditya的方法来生成一个无签名APK文件并安装它,但当我在我的Android平板电脑上安装它时,它给了我一个失败的错误[INSTALL_PARSE_FAILED_NO_CERTIFICATES]。
我想这是因为APK文件没有签名,平板电脑对此不满意。所以,在生成React Native包文件后,我能够通过Android Studio生成一个签名的APK文件。
顺便说一句,我们的应用是一款功能齐全的Android应用,已经在Play Store中存在,我们只是将React Native添加到它中,因为它很棒。
总结一下,我的步骤如下:
1)生成React Native包:
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/<your-package-name>/src/main/assets/index.android.bundle --assets-dest android/<your-package-name>/src/main/res/
2)从Android Studio生成一个Signed APK文件。
3)将签名APK文件安装到USB设备:
adb -d install -r <path_to_signed_apk>
-d标志只是告诉adb在附加的usb设备上安装,如果您有一个模拟器也在运行。如果你想在任何模拟器上安装,去掉-d标志。
4)利润!
你应该使用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,并按照那里的指示。这真的很直接。
React Native 0.49及以上版本
你应该在终端的工程目录下运行这个命令
1 - mkdir android/app/src/main/assets
2 - 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
如果低于0.49
1 - mkdir android/app/src/main/assets
2 - 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,并按照那里的指示。那好。
对于最新的react原生版本来捆绑项目
安卓
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/
iOS
React-native bundle——entry-file index.js——platform ios——dev false——bundle-output ios/main。Jsbundle——assets-dest ios
对我来说,./gradlew assemblerrelease不再工作,但下面的可以。
./gradlew :app:assembleRelease
感谢这条评论。