美文网首页
ReactNative环境下生成release包

ReactNative环境下生成release包

作者: ModestStorm | 来源:发表于2017-09-19 11:38 被阅读0次

    在ReactNative环境下生成release包,主要包括以下几步:

    • 生成签名密钥keyStore
    • 在AS中配置并在release配置中引用keyStore
      *保存 js.bundle到资源目录app/src/main/assets中.
    • 混淆java代码
    • 执行gradleAssemble命令打包。

    1.终端下执行如下命令生成密钥keyStore,命令行中输入密钥,最终会在当前目录中生成react.keystore文件并复制到项目中使用.

    keytool -genkey -alias react -keyalg RSA -validity 3650 -keystore react.keystore

    创建了一个名为react.keystore的别名为react的采用RSA加密算法的有效期为10年的证书文件
    • genkey 生成文件。
    • alias 别名。
    • keyalg 加密算法。
    • validity 有效期。
    • keystore 文件名
    2. 在AS中配置并在release配置中引用keyStore
    signingConfigs{//引用签名配置
            release {
                storeFile file("react.keystore")
                storePassword "react-native"
                keyAlias "react"
                keyPassword "react-native"
            }
        }
    
        buildTypes {
            release {
                minifyEnabled enableProguardInReleaseBuilds
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.release //引用签名配置
            }
        }
    
    3.保存js.bundle文件到资源目录app/src/main/assets

    在项目根目录下执行下面的命令,会在assets中生成index.android.bundle文件.

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

    React Native 的开发版需要有启动一个本地服务随时发送更新后的 js bundle 文件。如果要打正式包,需要把 js bundle 文件保存到 Android 项目的 assets/ 目录下。这样,正式包就不需要本地服务支持了.
    开发模式调试的时候 js 代码会立即生效,无需执行以上命令,但每次正式打包的时候如果修改了 js 代码都必须先执行以上命令。

    4.混淆java代码,混淆规则参照facebook官网
    def enableProguardInReleaseBuilds = true//混淆开关
    buildTypes {
            release {
                minifyEnabled enableProguardInReleaseBuilds
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.release //引用签名配置
            }
        }
    
    5.执行gradleAssemble命令打包.

    gradleAssemble
    android/app/build/outputs/apk/app-release.apk安装即可.

    相关文章

      网友评论

          本文标题:ReactNative环境下生成release包

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