下面给你一套可直接复制的 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