【React Native开发】Android 项目进行签名打包成Apk

96
学不会灬
2016.12.17 15:10* 字数 1104

在我们的React Native For Android应用开发完成之后,那么就需要进行发布上传应用市场了,在上传之后,那么有一个很重要的步骤就是签名打包。下面我们来详细看一下怎么样进行签名打包React Native应用。
<p>

(一)Android签名文件生成

上面有一个Android官方的签名生成方法的地址,大家可以进行详情查看,不过需要翻墙哦~。我现在给大家讲解两种签名生成的方法:
①:keytool命令方式生成 ,②:Android Studio IDE进行生成。

1.1 keytool命令生成签名秘钥

我们可以命令行运行如下命令:

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

[注意].我这边环境变量已经配置了,注意上面的my-release-key这个名字可以自己取名,同时my-key-alias也是自己取名,其中第二个名称alias参数后边的别名,在后面你在为应用签名的时候需要用到,所以暂时记录一下这个别名。

上面的命令我们需要输入密钥库(keystore)密码和对应秘钥的密码,然后设置名字,组织,国家,省份相关的信息,最后会生成my-release-key.keystore的签名文件。

具体命令截图如下:

Paste_Image.png
Paste_Image.png

现在我们去用户默认目录下面会生成my-release-key.keystore文件。具体截图如下

Paste_Image.png
1.2 Android Studio IDE进行生成秘钥文件

个人比较倾向于这一种方法,首先是图形界面的,而且少了命令行书写的问题,而且以前我记得在使用Eclipse开发Android的时候也一直使用这种方式,下面我们来看一下生成签名的具体步骤:

首先打开Android Studio菜单选择build->Generate Signed APK 在打开的界面点击Next,会弹出下面的界面

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

最后点击finish会生成签名秘钥,不过大家请注意看这边生成的秘钥和第一个命令行方法的秘钥的后缀不太一样的,这边是以jks结尾的,不过也没问题哦~也是同样可以签名的。

![Upload Paste_Image.png failed. Please try again.]

以上两种方式已经给大家演示了,打包签名的方法了,下面我们正式来进行配置打包生成APK了。

(二)Gradle配置

2.1.Gradle配置

①.首先我们要把刚刚生成的签名文件复制到项目android/app文件夹下面( 这边采用AS生成签名test.jks )。

Paste_Image.png

然后进行修改项目中gradle.properties文件,进行添加如下的代码(注意下面的签名和别名的名称和上一步放入的test.jks要一样,下面两项分别填写签名和别名的密码)-我取的密码为123456

MYAPP_RELEASE_STORE_FILE = test. jks 
MYAPP_RELEASE_KEY_ALIAS = test_alias
MYAPP_RELEASE_STORE_PASSWORD = 123456 
MYAPP_RELEASE_KEY_PASSWORD = 123456

这一步我们是进行全局的gradlde进行变量化的配置,后边我们会在后边的步骤中给相应的应用进行签名。
[注意].以上的签名秘钥请大家一定要妥善保管,因为在应用发布的时候需要的。
3.2.给应用添加签名-配置局部应用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 
          } 
} 
} 
…

具体实例配置截图如下:

Paste_Image.png
Paste_Image.png

(三)Gradle配置

生成签名包
对于生成签名包得方式我们要分两种情况进行区分对待。第一种在项目目录android/app下有react.gradle文件的(这个采用react-native init xxproject命令生成项目详情请看:
第二种是不存在react.gradle文件,主要是通过原生Android项目移植到React Native平台中。下面这两种方法都讲一下:4.1.对存在react.gradle文件的项目打包命令行切到react native主目录,然后运行下面的命令,请注意下面 android就是Android项目的目录名称

cd android && . /gradlew assembleRelease

这样运行截图如下:

Paste_Image.png
Paste_Image.png

该命令运行结束之后,会在android/app/build/outputs/apk目录下面生成app-release.apk该文件,然后可以使用该apk进行上线发布。

Paste_Image.png
前端
Web note ad 1