#### 生成android签名文件 cmd进入到java安装路径 下的bin目录,执行下面命令 ~~~ 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文件夹是你当前项目下的android文件夹** #### 设置 gradle 参数 编辑 ~/.gradle/gradle.properties 或者 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=***** ~~~ ![](https://box.kancloud.cn/f9ff6bbd07792a30b1881f2384aec831_1064x596.png) 编辑 android/app/build.gradle 文件,添加signingConfigs ,修改 release ~~~ android { ... defaultConfig { ... } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { 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 } } } ~~~ ![](https://box.kancloud.cn/3c6b447cad952ff63c45b65a013ff222_1065x609.png) #### 打包文件 首先在您的项目文件夹下(App.js所在文件夹)执行 `react-native link` ![](https://box.kancloud.cn/f53691b2e3cec584af606103fee15639_658x306.png) 打包之前确认已经生成了index.android.bundle文件 ![](https://box.kancloud.cn/00e74a3b63d6e7e66be43ec5e4207698_1271x448.png) 在当前项目的cmd窗口 执行 `cd android && ./gradlew assembleRelease`,或者在android目录下 执行 ~~~ ./gradlew assembleRelease ~~~ windows系统下 不需要 `./` 打包命令换成 `cd android && gradlew assembleRelease` `gradlew assembleRelease` 生成的安装包位置在 android/app/build/outputs/apk/app-release.apk **你可以导入项目文件夹下的android到android stdio 中去,可以配置权限、图标等** #### 优化安装包文件大小 编辑 android/app/build.gradle 文件 ~~~ /** * Run Proguard to shrink the Java bytecode in release builds. */ def enableProguardInReleaseBuilds = true ~~~ 打包时报以下错误,可以添加代码 ![](https://box.kancloud.cn/1eca05cb4ef8222d9420ca672d7aeae7_650x105.png) ~~~ android.disableResourceValidation=true ~~~ ![](https://box.kancloud.cn/c9e3090c86fe344ebd4ad7ca009df793_763x546.png)