React Native Mac 下打包Android APK
打包的时候遇到了 好多坑 这里记录下~
主要步骤:
1.android keystore签名的生成
- gradle mac下环境变量的配置
3.android studio中的gradle配置。
4.打包
签名的生成
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 “my-release-key.keystore“ 签名的名称 “my-key-alias ” 签名别名 有效期为10000天
mac 下 打开终端 $ cd ~ $ sudo keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
执行完之后,输入本机的 权限密码 然后 输入秘钥密码 一般为:至少必须为 6 个字符
接下来就是一些信息 可填可不填
这里按下回车 别名 和 秘钥名一致 回车
把生成的keystore 文件 放在 android 工程 app目录下 ,我这里新建了一个文件夹
之后就是按照官网文档 配置 android gradle文件:
在android/app/build.gradle,添加如下的签名配置
这里没有用全局 你也可以像官网这样
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 } } }
然后再package.json 文件中 添加 如下脚本
进入 android目录下 执行 ./gradlew assembleRelease "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "build_android": "cd android && ./gradlew assembleRelease", }, 这样在每次 打包的时候可以 在终端 执行 $ npm run build_android
注意:这个./不可省略;而在windows的传统CMD命令行下则需要去掉./ (别忘记)
到这里基本上是结束了,我也想一帆风顺,但是坑还是有的
在执行 npm run build_android的时候 报错
这里环境变量的配置参考了 这篇博文 讲的很详细 https://blog.csdn.net/u013424496/article/details/52684213
gradle command not found 这个错误一般是 gradle环境变量没有配置
如何配置gradle 环境变量
cd ~ touch .bash_profile open -e .bash_profile 这里如果打开.bash_profile 文件没有权限的话,可以按照博文中提到的那样做, 也可以 执行下面命令 sudo vim .bash_profile
输入e 进行编辑
输入 i 进入编辑模式 ,完成后 esc 然后:wq保存并退出。
完成之后 ,更新生效 .bash_profile
source .bash_profile gradle -v
没生效的话,重新打开终端
到这里就结束了吗?哪有那么简单哦?坑是填不完的。。。
what?什么鬼啊 还有这错误?
如果你们也遇到这个错误: XXXXnode_modules/node-pre-grp/node_modules/.bin/detect-libc 好吧 ,建议 卸载 node_modules 然后再重新npm install 不想卸 也没办法,我也不想卸啊 ,改了一部分依赖源码........(脑壳青痛) 卸载的话, 安装这个 npm install rimraf --g 然后执行:npm install rimraf -g && npm install
生成的apk 在 /android/app/build/outputs 目录下 然后 查看apk大小
what?快30M了 什么鬼啊,
看了下图片 : 2.9M
代码:1.3M 依赖的包也不多啊,为什么打出来这么大啊? 有知道的小伙伴求告知!
android 比 ios打出来的包大是肯定的 因为:
安卓ReactNative虽然使用了JSCore,但这个JSCore不是系统源生的,而是直接打入app包里的WebKit库,这也是为啥安卓项目引入RN包大小会增大4~5M的原因,ReactNative在iOS上JSCore是系统自带的,完全可以不用打入app包内,所以iOS的包大小,引入RN后变化并没有那么夸张。
关注我的公众号,我可以不定时骚扰大家~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
约束布局(ConstraintLayout)1.1.2 版本的新特性
ConstraintLayout 是目前 Android Studio 中项目的默认布局,目前已经到了 1.1.2 版本,这里就来介绍下它在新版本中的特性,如果你目前还没有使用过 ConstraintLayout ,可以看下我写的另一篇文章:Android ConstraintLayout 使用详解 一、Circular Positioning 圆形定位用于将两个 View 以角度和距离这两个维度来进行定位,以两个 View 的中心点作为定位点 app:layout_constraintCircle -目标 View 的 ID app:layout_constraintCircleAngle -对齐的角度 app:layout_constraintCircleRadius -与目标 View 之间的距离(顺时针方向,0~360度) <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.andro...
- 下一篇
retrofit网络请求入门(多实例讲解)
之前就想抽空写一篇关于retrofit的博客,今天终于有空啦= =,话不多说。上博。 一.相关资料: Github:http://github.com/square/retrofit 官网文档:http://square.github.io/retrofit/ 相关博客:Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava 这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 二.:模拟实现的请求以及retrofit实现步骤 本次主要使用retrofit模拟实现 1.正常get请求 2.拼接get请求(单个参数) 3.拼接get请求(多个参数) 4.get占位符请求 5.post请求 概览.JPG retrofit实现步骤: 步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit 实例 步骤5:创建 网络请求接口实例 并 配置网络请求参数 步骤6:发送网络请求(异步 / 同步) 步骤7: 处理服务器返回的数据 步骤讲...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7设置SWAP分区,小内存服务器的救世主