Win7平台下React-Native开发之Android项目打包发布流程
一、bundle文件
React-Native开发步骤中,有一个步骤是使用命令 react-native start 去启动一个基于Node.js的服务,名字为packager。这个packager的主要功能是:1、监视当前目录下相关文件的改动;2、监听在本机的8081(默认)端口,为正确的请求提供相应的bundle文件。总结一点来说就是:bundle文件是根据项目目录下相应文件的最新内容来动态生成的,这样在开发过程中就能实时地观察我们修改JS文件所带来的程序的改变。因为这个bundle文件就是最后整个APP的应用逻辑,所以,对于APP打包来说,关键步骤就在于就是如何把这个bundle文件作为生成的静态文件打包进我们的APP中。
二、打包步骤
1、生成密匙
keytool -genkey -v -keystore my-test-key.keystore -alias my-key- -validity 10000
代码中的 my-test-key.keystore 和 my-key-alias 替换成需要的名字。记住后续步骤中输入的密码等信息,需要用于第四步骤中的gradle脚本的编写。
2、创建 assets 文件夹
在项目根目录下的 /android/app/src/main/ 目录下创建 assets 文件夹
3、获取 bundle 文件并保存
首先:确保你在项目根目录下使用了 react-native start 命令启动了 packager,并可以使用浏览器测试能正确获取到bundle文件。
然后:确保你安装了curl 这个工具或者其他相同功能的工具。
最后:在项目根目录下输入如下命令:
curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
4、添加 gradle 的 keystore 配置
在项目根目录下的 /android/app 目录下,找到 build.gradle 文件,在其中添加:
// 在 defaultConfig 后面添加signingConfigs {
release {
storeFile file("/my-test-key.keystore") // 替换成你实际密匙文件所在位置
storePassword "步骤1中的密码" // 替换成你实际的密码
keyAlias "my-key-alias" // 替换
keyPassword "步骤1中的密码" // 替换
}
}
// 修改原来的配置,主要是加入 signingConfig 这一行
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds // 记得修改相应的功能启动
proguardFiles fetDefaultProguardFile('proguard-android.txt), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
注意:路径中的 反斜线(\) 要改成 正斜线(/)。
5、启用 Proguard 代码混淆(可选)
Proguard 是一个 Java 字节码混淆压缩工具,可剔除项目文件夹中为使用的部分,有效减少APK的大小。在 build.gradle 文件中,启动 Proguard模块:
def enableProguardInReleaseBuilds = true
6、执行打包脚本
首先:进入项目根目录下的 /android/ 目录中;
然后:执行 gradle assembleRelease 命令。
注意:如果出现错误或者没有安装 gradle 工具,需要自行安装 gradle 工具和配置好 GRADLE_HOME 和 PATH,注意和 /android/gradle/wrapper/gradele-wrapper.properties 文件中的版本配置保持一致。也可以使用 gradle clean 清理一下缓存。
7、将APK发布到各大应用市场
我们可以到 /android/app/build/outputs/apk/ 目录下看到了我们最终发布版的Apk文件。
Win7平台下React-Native开发之Android项目打包发布流程的更多相关文章
- 转 : React Native 开发之 IDE 选型和配置
转:https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651112392&idx=1&sn=135e29ddde30 ...
- React Native开发之IDE(Atom+Nuclide)安装,运行,调试
版权声明:本文为博主原创文章,如需转载请注明出处 目录(?)[-] 前言 MacWindowsLinux 准备工作 安装Atom 安装Nuclide 新建一个工程 自动补全 类型标注 语法检查 跳 ...
- React Native开发之npm start加速
在Windows下好不容易安装好React Native环境之后,运行npm start,结果就是无限被等待,快的话160秒(将近3分钟啊....) 而Mac下因为有watchman所以是飞一样的速度 ...
- 【React Native开发】React Native移植原生Android项目(4)
),React Native技术交流4群(458982758),请不要反复加群!欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...
- React—Native开发之 Could not connect to development server(Android)解决方法
作为初学者昨天还好好能跑的项目今天就会遇到突然爆红出错是经常的事,让我们来看下是什么错吧 先来翻译: 连接不到开发的服务器. 请按照以下的步骤来修复此问题: 确保包服务器在运行确保你的设备或者模拟器连 ...
- React Native开发之expo中camera的基本使用
之前做RN项目没调用过本地摄像头,今天下班早,做了一个简单的小demo:主要实现的功能:点击拍照按钮进入拍照界面,点击flip进行前后摄像头转换,点击开始拍照实现拍照功能(没写保存到本地的功能,大家可 ...
- Window平台下React Native 开发环境搭建
1. 安装Node.js 2. 安装react-native-cli 命令行工具 npm install -g react-nativew-cli 3. 创建项目 $ react-native ini ...
- React Native移植原生Android
(一)前言 之前已经写过了有关React Native移植原生Android项目的文章,不过因为RN版本更新的原因吧,跟着以前的文章可能会出现一些问题,对于初学者来讲还是会有很多疑难的困惑的,而且官方 ...
- win7平台下React-Native Android:Unable to upload some APKs
一.问题描述 根据网络上的Win7平台下React-native配置教程配置好开发环境的过程中,在艰难进行到react-native run-android这一步时,发现一直出现错误,截图如下: 错误 ...
随机推荐
- HD1556Color the ball(树状数组)
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Eclipse自动补全+常用快捷键
一,Eclipse自动补全增强方法 在Eclipse中,从Window -> preferences -> Java -> Editor -> Content assist - ...
- WinForm------RepositoryItemCheckEdit属性介绍
//去掉第三种状态 editcheck1.OptionView.NullStyle = UnChecked
- 《Struts2.x权威指南》学习笔记1
第2章 Struts的hello world 在介绍hello world项目前,文中要求下载和安装Struts2,主要是下载lib库和文档,可用于通过命令行进行代码编译.由于公司采用IntelliJ ...
- Linux服务器间文件传输
利用scp传输文件 1.从服务器下载文件 scp username@servername:/path/filename /tmp/local_destination 例如scp codinglog@1 ...
- scrapy2_初窥Scrapy
递归知识:oop,xpath,jsp,items,pipline等专业网络知识,初级水平并不是很scrapy,可以从简单模块自己写. 初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数 ...
- Redis总结(二)C#中如何使用redis
上一篇讲述了安装redis<Redis总结(一)Redis安装>,同时也大致介绍了redis的优势和应用场景.本篇着重讲解.NET中如何使用redis和C#. Redis官网提供了很多开源 ...
- xcode
1: info.plist IOS之Info.plist文件简介 http://www.apkbus.com/android-130240-1-1.html 在Xcode项目中读取plist文件 ht ...
- yum配置文件详解
yum是什么: Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包,自动解决包的倚赖性问题,它能便于管理大量系统的更新问题. yum特点:可以同时配置多 ...
- spring mvc3的注解@ResponseBody 自动返回jason
第三种利用spring mvc3的注解@ResponseBody 例如: @ResponseBody @RequestMapping("/list") public List< ...