关于react-native项目在android上面的打包部署过程
来源:互联网 发布:网络文学评论平台 编辑:程序博客网 时间:2024/05/29 19:17
其实在react官网上面就已经有了这个过程,但是在我前几天打包部署的时候出现了一些问题。想记录一下。
初始化一个react-native项目应该都不陌生了。我是按照官网上面用的Android Studio打包的。
1.将项目中的android下的app文件夹用Android Studio打开,然后点击Build->Generate Signed APK
2.created new …
3.按照图片填写该填的,填完了之后一路next finish。
以上步骤完成后就会在app文件夹里生成一个
app-release.apk
的文件,这个文件以及可以直接在安卓系统上面安装了,但是会发生闪退现象,完全点不开。这是因为React-Native的android平台下默认没有生成资源文件也就是我们所有的js图片文件等等。
所以我们就要生成JS Bundle文件:
1、在`Android/app/src/main/`文件夹下 创建一个assets文件在工程目录下,可手动,也可以在项目根目录下用命令行进行创建,命令行命令如下
mkdir -p Android/app/src/main/assets
2、这个也是在项目根目录下运行下面这段命令,生成Bundle文件
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/
加粗部分的文件是你项目根目录下面的主 index.js文件。以前的react-native初始化出来的项目,跟目录下会有index.android.js 和 index.ios.js 这两个平台下的js文件。但是有的只有一个index.js文件。
成功了之后就可以在刚刚创建的asset文件夹下面看到生成的bundle文件了。
然后再此进行打包,在Android Studio里面。点击Build->Generate Signed APK后在弹出的框内有刚刚创建好的keystore,里面可能保存了密码,如果没有直接输入刚刚你设置的密码,一路点击next finish,再次生成app-release.apk
,这次生成的会覆盖上一次的。然后在安卓上面安装,就不会出现闪退现象。
命令行发布版本
1、签名生成秘钥
在项目跟目录下打开命令窗口,输入
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
它会生成一个叫做my-release-key.keystore的密钥库文件,一定要保管好你的密钥库文件,不要上传到版本库或者其它的地方–alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。
加黑部分的名字都是可以自定义的,但是一定要记得。
2、设置gradle变量
把刚刚生成的my-release-key.keystore文件放到android/app文件夹下。
编辑~/.gradle/gradle.properties(没有这个文件你就创建一个),添加如下的代码(注意把其中的**替换为相应密码)。
注意:~表示用户目录,比如windows上可能是C:\Users\用户名,而mac上可能是/Users/用户名。
MYAPP_RELEASE_STORE_FILE=my-release-key.keystoreMYAPP_RELEASE_KEY_ALIAS=my-key-aliasMYAPP_RELEASE_STORE_PASSWORD=*****MYAPP_RELEASE_KEY_PASSWORD=*****
上面的这些会作为全局的gradle变量,我们在后面的步骤中可以用来给应用签名。将里面等号里面的星号改成自己刚刚设置的密码。
3、添加签名到应用的gradle配置中
编辑你项目中的
android/app/build.gradle
文件,添加如下的签名配置:
...android { ... defaultConfig { ... } signingConfigs { release { 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 } }}...
signingConfigs 里,以我的项目为例,就改成这个样子:
signingConfigs { release { storeFile file("/Users/Gary/Desktop/EDC/android/app/my-release-key.keystore") storePassword "123456" keyAlias "my-key-alias" keyPassword "123456" } }
4.生成发行APK包
cd android && ./gradlew assembleRelease
cd android表示切换到安卓目录下,打开命令行运行./gradlew assembleRelease
./gradlew assembleRelease在macOS和Linux系统中表示执行当前目录下的名为gradlew的脚本文件,运行参数为assembleRelease,注意这个./不可省略;而在windows命令行下则需要去掉./。
如果没有出错的话,就说明apk文件打包完成了,然后到你的这个目录下:
/android/app/build/outputs/apk
- 关于react-native项目在android上面的打包部署过程
- 关于React Native打包安卓项目
- React-Native 项目打包(iOS/Android)
- 如何将React Native 项目运行在 Web 浏览器上面
- 将 React Native 项目运行在 Web 浏览器上面
- 将 React Native 项目运行在 Web 浏览器上面
- React Native Android打包
- React native之android 打包部署apk的图标,文案,版本设置
- React Native之项目打包
- React Native之项目打包
- 记一次iOS自动化打包走过的坑-关于React Native-iOS项目
- React Native开发并打包android项目生成APK
- Android React Native在Android Studio中执行bundleReleaseJsAndAssets 打包失败的解决方法
- react-native android打包发布
- React Native之Android 打包
- Android React-native 签名打包
- React Native打包发布--Android
- React Native Android打包apk
- Spring mvc怎么获取当前应用的url地址?即jsp页面中的${contextpath}怎么得到?
- 高速移动的物体的碰撞穿透的问题的解决方法
- .net中的json序列化与反序列化学习资料收集
- Log of BCC
- Java学习笔记(第一课)
- 关于react-native项目在android上面的打包部署过程
- 安装centos7
- Spring AOP详解
- 欢迎使用CSDN-markdown编辑器
- MIT18.06线性代数课程笔记7:使用消元法求解Null space
- web.py 允许跨域访问
- 向十九大代表致敬,努力普及无穷小微积分!
- boost::deadline_timer
- Redis之在Linux上安装和简单的使用