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

react native android使用命令生成打包签名密钥

一、概述
Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,签名步骤是一样的)

二、生成一个签名密钥

在项目的 /android 目录下执行这个命令,生成的my-release-key.keystore要放在/android/app 目录下


// 生成密钥命令
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000// 浅浅解析一下
keytool:这是一个用于管理 Java 密钥和证书的命令行工具。-genkeypair:这个选项指示 keytool 生成一个密钥对,即公钥和私钥。-v:这个选项表示在生成密钥对时显示详细的输出信息。-storetype PKCS12:这个选项指定了密钥库的类型为 PKCS12,这是一种常见的密钥库格式。-keystore my-release-key.keystore:这个选项指定了要创建的密钥库文件的名称,即 my-release-key.keystore。-alias my-key-alias:这个选项指定了密钥对的别名,即 my-key-alias。-keyalg RSA:这个选项指定了要使用的密钥算法,这里是 RSA。-keysize 2048:这个选项指定了生成的密钥的长度,这里是 2048 位。-validity 10000:这个选项指定了生成的密钥对的有效期,即密钥对的证书有效期为 10000 天。

三、在 /app/build.gradle 中配置密钥

1、直接引入:

signingConfigs {release {storeFile file("my-release-key.keystore")storePassword "123456"keyAlias "my-key-alias"keyPassword "123456"}debug {storeFile file('debug.keystore')storePassword 'android'keyAlias 'androiddebugkey'keyPassword 'android'}}buildTypes {debug {signingConfig signingConfigs.debug}release {// Caution! In production, you need to generate your own keystore file.// see https://reactnative.dev/docs/signed-apk-android.signingConfig signingConfigs.releaseminifyEnabled enableProguardInReleaseBuildsproguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"}}

在这里插入图片描述

2、在/android/gradle.properties中设置 gradle 变量

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
// 换上对应的变量名
release {storeFile file(MYAPP_RELEASE_STORE_FILE)storePassword MYAPP_RELEASE_STORE_PASSWORDkeyAlias MYAPP_RELEASE_KEY_ALIASkeyPassword MYAPP_RELEASE_KEY_PASSWORD}

四、查看密钥信息

查看密钥信息,在 /android 目录下执行一下命令

./gradlew signingReport

在这里插入图片描述

http://www.lryc.cn/news/283787.html

相关文章:

  • 245.【2023年华为OD机试真题(C卷)】内存冷热标记(JavaPythonC++JS实现)
  • Docker五部曲之五:通过Docker和GitHub Action搭建个人CICD项目
  • 「JavaSE」类和对象3
  • IntelliJ IDEA 中输出乱码解决
  • 序列到序列模型
  • 计算机网络(第六版)复习提纲4
  • 天拓分享:汽车零部件制造企业如何利用边缘计算网关和数网星平台实现数控机床数据采集分析
  • 爬虫逆向开发教程1-介绍,入门案例
  • 时序分解 | Matlab实现CEEMDAN+PE自适应噪声完备集合经验模态分解+排列熵计算
  • Oracle命令大全
  • 目标检测--01
  • MyBatisPlus学习笔记三-核心功能
  • 【并发编程系列】putIfAbsent和getOrDefault用法
  • 人力资源智能化管理项目(day01:基础架构拆解)
  • JAVA ORM Bee的设计模式分析
  • go语言(三)----函数
  • 鸿蒙原生应用/元服务开发-延迟任务说明(一)
  • 正信晟锦:借钱一直都不还可以起诉吗
  • npm run dev 启动vue的时候指定端口
  • 深度学习|16.1 词表示、embedding
  • .NetRSA签名(调的JAVA的接口)
  • CSS||选择器
  • 几种常见的算法
  • 原生的cURL函数而不是 tp6框架的Http类,curl_init()、curl_setopt()和curl_exec()等cURL函数
  • Win10下在Qt项目中配置SQlite3环境
  • Sentinel 轨道数据及下载
  • MD5 加密
  • 在 Excel 中将列数据用单引号括起来并添加分隔符的解决方案
  • 技术硬实力,阿里巴巴为什么要开源Spring Cloud Alibaba?
  • 2024 前端高频面试题之 HTML/CSS 篇