React Native 如何打包正式apk

在 React Native(RN)中打包正式版(Release)应用,Windows 和 Android 的流程是不同的。下面分别介绍如何为 AndroidWindows 平台构建正式版应用。


一、Android 打包正式 App

1. 生成签名密钥(Keystore)

如果你还没有签名密钥:

bash 复制代码
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

建议将 my-release-key.keystore 文件放在 android/app/ 目录下。

2. 配置 Gradle 使用签名

编辑 android/gradle.properties,添加:

properties 复制代码
MYAPP_UPLOAD_STORE_FILE=my-release-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****

然后编辑 android/app/build.gradle

gradle 复制代码
android {
    ...
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
                storeFile file(MYAPP_UPLOAD_STORE_FILE)
                storePassword MYAPP_UPLOAD_STORE_PASSWORD
                keyAlias MYAPP_UPLOAD_KEY_ALIAS
                keyPassword MYAPP_UPLOAD_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

3. 构建 Release APK 或 AAB

生成 APK:
bash 复制代码
cd android
./gradlew assembleRelease

输出路径:android/app/build/outputs/apk/release/app-release.apk

使用 adb 安装 APK:
bash 复制代码
adb install android/app/build/outputs/apk/release/app-release.apk
相关推荐
Flynt2 小时前
Shopify 弃 React Native 上了 HN 1272 分,我复现了它给 Agent 用的那套无头架构
react native·前端框架·agent
高级程序源6 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
lizz22767 小时前
Babel插件手册
javascript
VXbishe9 小时前
【课程设计】基于SpringBoot的乡村政务服务系统的设计与实现-计算机毕设77011
javascript·vue.js·spring boot·python·php·课程设计·政务
志尊宝9 小时前
Vue3 零基础每日笔记(037):动手封装 useMouse 与 useWindowSize——事件监听的标准模板
前端·javascript·vue.js·笔记·html5
shmily麻瓜小菜鸡10 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
wcy031011 小时前
POST为什么会发送两次请求
javascript·ajax
志尊宝11 小时前
Vue3 零基础每日笔记(047):动态路由与路由参数——:id 传参、query 传参、props 解耦
前端·javascript·vue.js·笔记·html5
晚安日记wanna14 小时前
React 为何不做双端 diff?Vue 与 React 更新逻辑的三层差异
前端·react.js·面试
光影少年14 小时前
setImmediate 和 setTimeout(0) 的区别
android·前端·react.js·ios·前端框架