React Native 打包流程(Android 为主)

下面给你一套可直接复制的 React Native 打包流程(Android 为主,附 iOS)。

一、准备

确保能正常运行:npx react-native run-android

生成签名密钥(项目根目录执行):

复制代码
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

把 my-release-key.keystore 放到 android/app

二、配置签名

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=******

android/app/build.gradle:

复制代码
android {
  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 {
      signingConfig signingConfigs.release
      minifyEnabled true
      shrinkResources true
      proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
  }
}

三、打包命令

  • 生成 JS Bundle(离线包):

    mkdir -p android/app/src/main/assets
    npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

  • 打正式 APK:

    cd android
    ./gradlew assembleRelease

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

  • 打 AAB(推荐上架):

    ./gradlew bundleRelease

四、iOS 简要

生成离线资源:

复制代码
mkdir -p ios/bundle
npx react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ios/bundle/main.jsbundle --assets-dest ios/bundle/assets

在 Xcode 配置 Signing & Capabilities,选 Release 证书,Archive 后导出 .ipa

五、优化与排坑

开启 Hermes、R8/ProGuard、资源压缩;用 ABI splits 瘦身

常见错:verifyReleaseResources → 检查第三方库 compileSdk;libpng → 关闭 aapt 检查或修复图片

六、交付

给测试:app-release.apk

上架:app-release.aab

相关推荐
普通人65 小时前
WebGL与WebGPU入门指南
开发语言·webgl·1024程序员节
猫猫不是喵喵.21 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
fish_zzzz4 天前
笔记-论数据结构2
1024程序员节
普通人65 天前
PHP文件读写完全指南
开发语言·php·1024程序员节
Martina_03215 天前
AI生成3D场景从白模换成精模后镜头全偏了?用6步检查单位、枢轴与层级替换
图像处理·人工智能·3d·ai·自然语言处理·材质·1024程序员节
星云_byto6 天前
CSS布局
人工智能·机器学习·目标跟踪·1024程序员节
张小姐的猫9 天前
【MySQL】访问 & 数据流动原理
android·数据库·mysql·adb·1024程序员节
工业HMI实战笔记10 天前
印刷电路板HMI:SMT贴装的元件定位界面
制造·设计规范·设计语言·1024程序员节
Martina_032110 天前
AI生成3D模型一合并网格,材质就串色?用6步检查材质槽、UV与图集重映射
图像处理·人工智能·3d·材质·uv·游戏策划·1024程序员节
橙光成长10 天前
android-ad-cleaner:android免 Root 批量关闭系统开屏与营销推送
android·1024程序员节