React Native学习之调试与打包发布

调试

http://localhost:8081/index.android.bundle?platform=android

当应用启动运行的时候,会自动拉取这个bundle文件,该文件里存放的是应用的全部逻辑代码,在目录中并不存在这个文件,事实上,这个地址只是一个请求地址,而非真正的静态资源文件,是通过包服务器packager通过动态分析index.android.js中的依赖,并对其进行合并得到的,而且该服务允许代码实时渲染。

发布

生成一个签名密钥

keytool -genkey -v -keystore rnapp.keystore -alias rnapp -keyalg RSA -keysize 2048 -validity 10000

最后它会生成一个文件名为rnapp.keystore的密钥库文件,我们需要将其放置在android/app目录下。

创建index.android.bundle文件

找到路径/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

这句命令是重点,如果assets目录中不存在该文件,则打包的apk在执行时显示空白。

curl.exe官方下载:https://curl.haxx.se/download/
例如:http://curl.haxx.se/download/curl-7.33.0-win64-ssl-sspi.zip

免安装,放置于项目根目录执行或添加至环境变量

添加gradle的android keystore配置

打包的apk在未签名的情况下,在手机中(非root)是不允许安装的

android/app/build.gradle文件中

//签名
signingConfigs{
    release {
        storeFile file("/rnapp.keystore")
        storePassword "密码"
        keyAlias "别名"
        keyPassword "密码"
    }
}
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release  //添加这句话引用签名配置
    }
}

启用Proguard代码混淆来缩小APK文件的大小

Proguard是一个Java字节码混淆压缩工具,它可以移除掉React Native Java(和它的依赖库中)中没有被使用到的部分,最终有效的减少APK的大小。

重要:启用Proguard之后,你必须再次全面地测试你的应用。Proguard有时候需要为你引入的每个原生库做一些额外的配置。参见app/proguard-rules.pro文件。

app/build.gradle中:

def enableProguardInReleaseBuilds = true

编译生成

安装gradle工具

官方下载:https://services.gradle.org/distributions/
例如:https://services.gradle.org/distributions/gradle-2.4-all.zip

注意:Gradle版本必须与android\gradle\wrapper下的一致,版本号可查看配置文件gradle-wrapper.properties

解压即可,并配置系统环境变量,配置GRADLE_HOME到你的gradle根目录当中,然后将 %GRADLE_HOME%/bin(Linux 或 Mac 的是 $GRADLE_HOME/bin)加到 PATH 的环境变量。

配置完成之后,运行gradle -v,检查一下是否安装无误

/android/目录中执行gradle assembleRelease命令,打包后的文件在android/app/build/outputs/apk目录中,例如app-release.apk。如果打包碰到问题可以先执行gradle clean清理一下。

> cd android
> gradle assembleRelease

将apk发布到各大应用市场(BUILD SUCCESSFUL)

apk生成目录(Debug/Release):appblog\android\app\build\outputs\apk

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/react-native-learning-debugging-and-release-packaging/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
React Native学习之调试与打包发布
调试 http://localhost:8081/index.android.bundle?platform=android 当应用启动运行的时候,会自动拉取这个bundle文件,该文件里存放的是应用的全部逻辑代码……
<<上一篇
下一篇>>
文章目录
关闭
目 录