前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >react native打包apk

react native打包apk

作者头像
十里桃花舞丶
发布2018-05-17 14:55:46
2.1K0
发布2018-05-17 14:55:46
举报
文章被收录于专栏:桥路_大数据

前言

最近自己的react native app已经完成了,博主想将其打包成android apk运行在安卓端的手机上。然后遇到了一系列的问题。经过一段时间的踩坑,已经成功打包成apk文件并在手机端正常运行和显示。下面介绍一下react native打包成android apk的原理和步骤。

基本原理

react native程序在调试的时候,在虚拟机端是通过连接本地node服务来获取js文件,所以可以实现热加载。但是要打包成apk时,需要将这些js文件打包成bundle包,当做android的运行资源。放置在assets目录下(离线包的方式)。

所以apk打包的过程是先将js文件打包成bundle包,然后再将程序打包成apk文件。

bundle打包

1.启动sever,即本地的node服务(之前调试过程中获取js文件的服务),在工程主目录下启动

代码语言:javascript
复制
npm start

2.创建bundle包存放目录

代码语言:javascript
复制
mkdir -p android/app/src/main/assets

注:可以手动创建

3.打包bundle

代码语言:javascript
复制
curl -k"http://localhost:8081/index.android.bundle">android/app/src/main/assets/index.android.bundle

注:从node服务拉取bundle包并存放到目标目录下

4.配置bundle运行环境

代码语言:javascript
复制
react-native bundle --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.jsbundle --platform android --assets-dest ./android/app/src/main/res/ --dev false

注:上述步骤的作用是配置入口文件、平台等。如果缺少上述的步骤,会报错,找不到入口文件。

APK打包

1.生成签名文件

使用keyTool工具生成签名文件,在jdk安装目录的bin\下运行

代码语言:javascript
复制
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

详细可参考官网:https://facebook.github.io/react-native/docs/signed-apk-android.html

-alias 后跟着别名,要记住这个别名,因为在项目中要进行配置,后面会让输入密码,也要记住,同样在后面配置中会用到。

运行完后,会在当前目录下出现my-release-key.keystore的文件,即签名文件。记住文件路径或将此文件导入到android/app目录下。

注:要保护你的签名文件私有,不要将其一起提交给版本控制工具(即暴露出去)

2.项目中配置签名文件信息

    1)在android/gradle.properties中配置

代码语言:javascript
复制
MYAPP_RELEASE_STORE_FILE=my-example-key.keystore            (---签名文件名)
MYAPP_RELEASE_KEY_ALIAS=my-example-alias                    (---签名名称)
MYAPP_RELEASE_STORE_PASSWORD=123456                         (---仓库密码)
MYAPP_RELEASE_KEY_PASSWORD=123456                           (---key密码)

    2)在android/app/build.graddle中配置

代码语言:javascript
复制
在androdi/app/build.graddle里面配置
  signingConfigs {
    release {
      storeFilefile ("签名文件路径")
      storePassword "仓库密码"
      keyAlias "签名名称"
      keyPassword "key密码"
            }
        }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release 
        }
    }

3.打包生成签名的apk

进入android目录,执行:

代码语言:javascript
复制
gradlew.bat assembleRelease

或者:

代码语言:javascript
复制
gradle assembleRelease

注:生成的APK文件在/android/app/build/outputs/apk下,去手机端安装你的app吧

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年04月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 基本原理
  • bundle打包
  • APK打包
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档