如果做过Android原生开发的,react-native打包跟Android打包就大同小异了,先说明一下,这针对window7系统。
1、看看自己有没有配好了gradle环境变量,如果配好了,这一步可以跳过。
配置步骤:
先去官网下载自己对应版本的gradle,然后直接解压即可,我这里直接解压在Android开发的相关目录下
计算机->鼠标右击选择属性->高级系统设置->高级->环境变量->点击”新建“,配置”GRADLE_HOME“,如图:
继续在此处选择“path”,进行修改,加入“;%GRADLE_HOME%\bin”,注意此处没有引号,记得前面要加分号(要切换到英文模式),这样就配置好gradle的环境变量了
配置完后认证一下,可以在cmd控制台上 输入echo %path%
看到这个,所以配置成功了。
2.正式开始打包的配置:
第一步:先生成一个签名的密钥
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
这条命令会要求你输入密钥库(keystore)和对应的密钥的密码,然后设置一下发行相关的信息。最后它会生成一个叫做my-release-key.keystore的密钥库文件。
在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。-alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录下这个别名。
注:请记得妥善保管好你的密钥库文件,不要上传到版本库或者其它地方。
第二步:设置gradle变量
把my-release-key.keystore文件放到你工程中的android/app文件夹下
添加签名到应用的gradle配置文件
...
android {
...
defaultConfig { ... }
//配置签名
signingConfigs {
release {
storeFile file("/my-release-key.keystore")
storePassword "******" //生成密钥时自己设置的密码
keyAlias "my-key-alias"
keyPassword "******"" //同上
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release //引用签名的配置
}
}
}
启用Proguard代码混淆来缩小APK文件的大小(可选)
Proguard是一个Java字节码混淆压缩工具,它可以移除掉React Native Java(和它的依赖库中)中没有被使用到的部分,最终有效的减少APK的大小。
重要:启用Proguard之后,你必须再次全面地测试你的应用。Proguard有时候需要为你引入的每个原生库做一些额外的配置。参见app/proguard-rules.pro文件。
要启用Proguard,编辑android/app/build.gradle文件:
/**
* 运行Proguard来减小发布版本的Java字节码大小
*/
def enableProguardInReleaseBuilds = true
第三步:
找到路径/android/app/src/main,并在该目录下新建assets文件夹
然后在工程目录下将index.android.bundle下载并保存到assets资源文件夹中,执行的命名:
curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
curl官网下载,下载好直接解压,然后直接将curl.exe复制粘贴到项目的根目录下即可,配置好这一步,就可以真正进入打包了。
第四步:真正打包
在cmd控制台切换到项目的/android/目录中执行gradle assembleRelease命令,打包后的文件在android/app/build/outputs/apk目录中,例如app-release.apk。如果打包碰到问题可以先执行 gradle clean 清理一下。
到此就ok了