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
相关推荐
烬羽11 分钟前
后端返回的 JSON 字符串,浏览器怎么"看懂"的?——Ajax 全链路拆解
javascript
半个落月1 小时前
一个新手用 Bun + Axios 调通 DeepSeek API 的实践记录
javascript
不好听6131 小时前
深入理解链表:线性数据结构的另一面
javascript·数据结构
林希_Rachel_傻希希1 小时前
学React治好了我的焦虑症,1小时速通React 前20分钟。
前端·javascript·面试
小林ixn1 小时前
从 Ajax 到异步编程:JSON 序列化、Event Loop 与 XHR 请求完全解析
javascript
丷丩2 小时前
MapLibre GL JS第47课:添加动画图标
javascript·gis·动画·mapbox·maplibre
快乐的哈士奇3 小时前
【Next.js实战①】Gmail API 按柜号检索邮件:OAuth 双 Cookie 与搜索 Fallback
开发语言·javascript·ecmascript
云水一下3 小时前
Vue.js从零到精通系列(五):全局状态管理——Pinia 核心与实践
前端·javascript·vue.js
kmblack14 小时前
javascript计算年龄
开发语言·javascript·ecmascript
Dick5074 小时前
ROS2 多机器人通用 Driver 层复盘:BaseRobotDriver 到多平台 Mock 切换实现
前端·javascript·机器人