当前位置: 首页 > web >正文

react-native 安卓APK打包流程

一、使用keytool命令生成一个签名密钥

$ keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

在 Windows 上keytool命令放在 JDK 的 bin 目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你需要在命令行中先进入bin中才能执行keytool命令。

最后它会生成一个叫做my-release-key.keystore的密钥库文件。

然后将my-release-key.keystore文件放到你工程中的android/app文件夹下

提示:可能会告诉你没有权限,这时候你就使用管理员运行CMD就可以了

二、设置 gradle 变量

即:gradle.properties的配置。

分2种设置 gradle.properties 变量方法:一种是全局配置,另外一种是项目级配置。

全局配置对所有项目有效,项目级配置只对所在项目有效。

全局配置:一般都是在你的C盘中,我的是:C:\Users\luanjialin\.gradle下面,如果没有gradle.properties文件,你就自己动手创建gradle.properties文件,并在文件里面写入:

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=这里是你设置的密码
MYAPP_RELEASE_KEY_PASSWORD=这里是你设置的密码

项目级配置:一般在你的项目目录/android/gradle.properties中,同样加上上面的代码

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=这里是你设置的密码
MYAPP_RELEASE_KEY_PASSWORD=这里是你设置的密码

三、把签名配置加入到项目的 gradle 配置中

即:将签名放到项目目录下的android/app/build.gradle

...
android {...defaultConfig { ... }signingConfigs {release {if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {storeFile file(MYAPP_RELEASE_STORE_FILE)storePassword MYAPP_RELEASE_STORE_PASSWORDkeyAlias MYAPP_RELEASE_KEY_ALIASkeyPassword MYAPP_RELEASE_KEY_PASSWORD}}}buildTypes {release {...signingConfig signingConfigs.release}}
}
...

这里切记,不要删除原来的任何内容,只是将新内容加入进来。

四、打包

$ cd android
$ ./gradlew assembleRelease

五、查看APK文件所在

生成的 APK 文件位于android/app/build/outputs/apk/release/app-release.apk
http://www.xdnf.cn/news/2909.html

相关文章:

  • 【Linux学习笔记】进程替换和自定义shell
  • 自动化立库/AGV物流仿真详细步骤
  • MarkItDown:如何高效将各类文档转换为适合 LLM 处理的 Markdown 格式
  • Objective-C Block 底层原理深度解析
  • Hearts of Iron IV 钢铁雄心 4 [DLC 解锁] [Windows SteamOS macOS]
  • 基于tabula对pdf中多个excel进行识别并转换成word中的优化(四)
  • 防爆风扇储能轴流风机风量风压如何保障通风安全?
  • dify1.3.1更新又给我们带来了什么?
  • 已知条件概率,反推设计值
  • Vue3取消网络请求的方法(AbortController)
  • android开发中的多线程、数据存储同步功能实现方案和应用场景
  • 【SpringBoot】基于MybatisPlus的博客管理系统(1)
  • 常见的硬盘分类
  • SpringBoot、微服务与AI场景题深度解析
  • neo4j基础操作:命令行增删改查
  • java web 过滤器
  • 华为云IAM用户权限设置主要有哪些问题需要注意?
  • 医疗生态全域智能化:从技术革新到价值重塑的深度探析
  • 激光驱鸟:以科技重构生态防护边界
  • JavaAPI — 包装类与正则表达式
  • 从厨房到云端:从预制菜到云原生
  • kotlin flatMap 变换函数的特点和使用场景
  • SpringBoot Actuator未授权访问漏洞的全面解析与解决方案
  • 【uom】 0 配置文件(Cargo.toml)
  • vscode chrome调试怎么在所有浏览器都好使
  • jmeter-Beashell获取请求body data
  • 音视频之H.265/HEVC网络适配层
  • 打造惊艳的渐变色下划线动画:CSS实现详解
  • [C++]C++20协程的原理
  • 【MySQL】聚合查询 和 分组查询