React Native Android打包

作者: Lethe35 | 来源:发表于2019-06-04 23:07 被阅读10次

    离线包:ReactNative 和你写的 js文件、图片等资源都打包放入 App

    使用 react-native bundle --help 来查看打包的具体参数。下面列举一些主要参数:

        --entry-file <path>          RN入口文件的路径, 绝对路径或相对路径
        --platform [string]          ios 或 andorid
        --transformer [string]       Specify a custom transformer to be used
        --dev [boolean]              如果为false, 警告会不显示并且打出的包的大小会变小
        --prepack                    当通过时, 打包输出将使用Prepack格式化
        --bridge-config [string]     使用Prepack的一个json格式的文件__fbBatchedBridgeConfig 例如: ./bridgeconfig.json
        --bundle-output <string>     打包后的文件输出目录, 例: /tmp/groups.bundle
        --bundle-encoding [string]   打离线包的格式 可参考链接https://nodejs.org/api/buffer.html#buffer_buffer.
        --sourcemap-output [string]  生成Source Map,但0.14之后不再自动生成source map,需要手动指定这个参数。例: /tmp/groups.map
        --assets-dest [string]       打包时图片资源的存储路径
        --verbose                    显示打包过程
        --reset-cache                移除缓存文件
        --config [string]            命令行的配置文件路径
    

    1.在 android/app/src/main/ 目录下创建 assets 目录

    执行命令

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

    2.生成签名密钥

    Android要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到类似Google Play store这样的应用市场之前,你需要先生成一个签名的APK包
    keytool命令生成一个私有密钥:

    keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
    

    1.my-release-key是文件名,my-key-alias是别名
    2.如果命令执行不成功请尝试,进入到keytool命令存放的目录再执行(在JDK的bin目录中)

    按照提示信息设置一些发行相关的信息,最后将生成my-release-key.keystore密钥库文件(注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方),密钥库里应该已经生成了一个单独的密钥,有效期为10000天。(--alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。)

    3.设置gradle变量

    • 把my-release-key.keystore文件放到工程中的android/app文件夹下。
    • 修改android/gradle.properties文件,添加如下的代码(注意替换xx为你自己设置的密钥和密码)
    MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
    MYAPP_RELEASE_KEY_ALIAS=my-key-alias
    MYAPP_RELEASE_STORE_PASSWORD=XXX
    MYAPP_RELEASE_KEY_PASSWORD=XXX
    

    4.添加签名到项目的gradle配置文件

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

    ...
    android {
        ...
        defaultConfig { ... }
        signingConfigs { //添加这块代码 
            release {
                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 //添加这块代码 
            }
        }
    }
    ...
    

    5.生成APK包

    切换到android目录下运行命令:

    gradlew assembleRelease
    

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

    相关文章

      网友评论

        本文标题:React Native Android打包

        本文链接:https://www.haomeiwen.com/subject/orgrxctx.html