浅谈React Native打包apk的坑
作者:crazywoniu 发布时间:2022-07-26 05:44:28
RN的打包,大家可以根据官网一步一步来,但这里有几个地方注意,一下简单介绍:
生成一个签名密钥
在项目的目录下打开cmd命令窗口输入一下命令运行:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做my-release-key.keystore的密钥库文件。注意密匙库和密码自己写的,如果是测试随便即可
在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。--alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。
注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。
设置gradle变量
把my-release-key.keystore文件放到你工程中的android/app文件夹下。
编辑~/.gradle/gradle.properties(没有这个文件你就创建一个),添加如下的代码(注意把其中的****替换为相应密码)
这里是官网的教程,这里会有一个坑,其实我们需要把这个文件放到android的目录下:
并在文件中添加一下代码:
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=123456
MYAPP_RELEASE_KEY_PASSWORD=123456
添加签名到项目的gradle配置文件
编辑你项目目录下的android/app/build.gradle,添加如下的签名配置:
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 {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
生成发行APK包
windows下输入一下命令:
cd android && gradlew assembleRelease
等待打包结果,如果看到如下结果说明成功了,如果没有成功欢迎大家贴出你的错误一起总结
生成的APK文件位于android/app/build/outputs/apk/app-release.apk,它已经可以用来发布了。
来源:http://blog.csdn.net/crazywoniu/article/details/76451256


猜你喜欢
- 静态代理第一种实现(基于接口):1》接口public interface Hello { void say(String msg);}2》目
- 其实就只有一条sql语句<select id = "search" resultType = "mate
- java函数中的传值和传引用问题一直是个比较“邪门”的问题,其实java函数中的参数都是传递值的,所不同的是对于基本数据类型传递的是参数的一
- 本文实例为大家分享了java排序算法之冒泡排序的具体代码,供大家参考,具体内容如下冒泡排序冒泡排序无疑是最为出名的排序算法之一,从序列的一端
- 在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法。只允许我们定义publi
- C# 关于Invoke首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke
- springboot 多个filter的执行顺序以及配置当项目中有多个filter时,为了便于管理,可以创建一个配置文件,对所有的filte
- 初学线程时,总是将 run 方法和 start 方法搞混,虽然二者是完全不同的两个方法,但刚开始使用时很难分清,原因就是因为初次使用时效果貌
- 之前做过用java读取word文档,获取word文本内容。但发现docx的支持,doc就异常了。后来找了很多资料发现是解析方法不一样。首先要
- 目录前言简介在Java上使用创建项目,并引入Jar包导入traineddata编写测试代码训练工具训练数据仓库参考前言Tesseract-O
- 效果:一个手指实现(所有手势事件)和(部分事件的);A. 所有手势activity_main.xml<TextView android
- 本文实例讲述了C#禁用双击窗体图标关闭窗体的方法。分享给大家供大家参考。具体实现方法如下:[DllImport("user32.d
- Json的简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个
- 前言本文主要给大家介绍了关于Java读取二进制文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。读Hex写CS
- 什么是JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java AP
- 实践过程效果代码public partial class frmSend : Form{ public frmSe
- 必须先要了解的1。c/c++是程序员自己管理内存,Java内存是由GC自动回收的。我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。2
- 项目需要从其他网站获取数据,因为是临时加的需求,在开始项目时没想到需要多数据源于是百度了一下,发现只需要改动一下Spring 的applic
- 在C#中,在处理字符串拼接的时候,使用StringBuilder的效率会比硬拼接字符串高很多。到底有多高,如下:static void Ma
- 1. 原理每一个线程对应一个消息队列MessageQueue,实现线程之间的通信,可通过Handler对象将数据装进Message中,再将消