React-Native Android打包

简介: React-Native Android打包

生成签名密钥

  • 打开终端
  • 查看java 根目录路径
/usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
  • 去到java安装的根目录,即输入
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
  • 当前用户没有最高权限,在Library文件夹下不能生成任何文件,可以到当前指定目录下生成文件,比如目录:/Users/hanjin/Desktop/key/android.keystore
keytool -genkey -v -alias android -keyalg RSA -validity 20000 -keystore /Users/hanjin/Desktop/key/android.keystore

Alias 是别名,填写APP名称即可,别的名称也行

  • 按照提示输入信息

设置 gradle 变量

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

my-release-key.keystore 为密钥库文件名,在android/app文件夹下。

my-key-alias 为生成秘钥的时候设置的别名。

把签名配置加入到项目的 gradle 配置中

编辑项目目录下的android/app/build.gradle,添加如下的签名配置

...
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
        }
    }
}
...

测试应用的发行版本

注意:在 debugrelease 版本间来回切换安装时可能会报错签名不匹配,此时需要先卸载前一个版本再尝试安装。

react-native run-android --variant=release

生成发行 APK 包

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
$ cd android
$ ./gradlew assembleRelease

GradleassembleRelease 参数会把所有用到的 JavaScript 代码都打包到一起,然后内置到 APK 包中。

注意:请确保 gradle.properties 中没有包含_org.gradle.configureondemand=true_,否则会跳过 js 打包的步骤,导致最终生成的 apk 是一个无法运行的空壳。

生成的 APK 文件位于android/app/build/outputs/apk/app-release.apk,它已经可以用来发布了。

本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

目录
相关文章
|
2月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
232 1
|
2月前
|
JavaScript 前端开发 应用服务中间件
本地运行打包好的React、Vue项目
本文讨论了如何本地运行打包好的React和Vue项目,并解决了使用React-Router时Tomcat部署刷新页面导致404的问题,提出了将请求转回index.html的解决方案。
28 1
本地运行打包好的React、Vue项目
|
5月前
|
安全 Java Android开发
05. 【Android教程】Android 程序签名打包
05. 【Android教程】Android 程序签名打包
61 1
|
2月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
347 8
|
3月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
274 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
5月前
|
前端开发 JavaScript 测试技术
|
4月前
|
资源调度 分布式计算 前端开发
[已解决]react打包部署
[已解决]react打包部署
32 0
|
4月前
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
132 0
|
5月前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
32 0
|
5月前
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
57 0