React Native APP签名打包release版本APK

字数 386阅读 1775

注意

首先React Native开发的APP是无法通过Android Studio进行打包的,因为AS打包的APK,也是和debug版本一样,需要进行依托localhost:8081服务运行。所以我们必须采用官方推荐的打包方式才可以。

打包过程

1.1生成签名证书

1.1.1签名的意义:

签名是应用的唯一ID,也是运用签名信息进行区分的。签名可以保证我们的应用可以正常升级,并且不被别人覆盖(当包名相同时)。

keytool -genkey -keystore test.keystore -alias test -keyalg RSA -validity 10000

参数解释:
-genkey 产生证书文件
-keystore 指定密钥库的.keystore文件中
-keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
-validity 为证书有效天数,这里我们写的是10000天
-alias 产生别名

1.2设置gradle变量

1、将你的签名证书copy到 android/app目录下。
2、编辑../android/gradle.properties,加入如下代码:

MYAPP_RELEASE_STORE_FILE=your keystore filename  
MYAPP_RELEASE_KEY_ALIAS=your keystore alias  
MYAPP_RELEASE_STORE_PASSWORD={你的密码}  
MYAPP_RELEASE_KEY_PASSWORD={你的密码}

3、在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  //加
        }  
    }  
}  

4、签名打包APK
terminal进入项目下的android目录,运行如下代码:
./gradlew assembleRelease
签名打包成功后你会在 “android/app/build/outputs/apk/”目录下看到签名成功后的app-release.apk文件。

提示:如果你需要对apk进行混淆打包 编辑android/app/build.gradle:
def enableProguardInReleaseBuilds = true

推荐阅读更多精彩内容