React-Native学习之路(14) - 安卓打包上线 +

2017-08-19  本文已影响70人  woow_wu7

(1) RN安卓app名称和图标修改:

(2) RN安卓打包上线

(1) 生成一个签名密匙

在JDK的bin目录中执行以下命令:
----------------------------

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

----------------------------

以上这条命令会要求你输入密钥库(keystore)和对应密钥的密码,
然后设置一些发行相关的信息。最后它会生成一个叫做my-release-key.keystore的密钥库文件。

----------------------------

在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。

----------------------------

上面的 my-release-key 这个名字可以自己取名,同时my-key-alias 也是自己取名,
其中第二个名称 alias 参数后边的别名,在后面你在为应用签名的时候需要用到,所以暂时记录一下这个别名。

----------------------------
截图如下:
keytool命令.png

(2) 设置gradle变量

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
--------------------------------

上面的这些会作为全局的gradle变量,我们在后面的步骤中可以用来给应用签名。

(3) 添加签名到项目的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
        }
    }
}
...

像下面这样写也可以:

  signingConfigs {
            release {
              storeFile file("my-release-key.keystore")
              storePassword "*****"
              keyAlias "my-key-alias"
              keyPassword "*****"
            }
        }
...
   buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
------------------------------------------------
//*****这些星星就是你设置的密匙库口令

(4) 生成发行APK包


gradlew assembleRelease

------------------------------
注意:
(1) 以上是windows平台的做法
(2) 打包前请保证所有的图片都以英文命名,否则会导致打包不成功
打包成功.png

打包成功后apk会放在:
android\app\build\outputs\apk下的app-release.apk是打包好的APK
如下图:


app-release.apk存放位置

http://www.jianshu.com/p/2a4e86a18bfb
官网http://reactnative.cn/docs/0.47/signed-apk-android.html#content

上一篇 下一篇

猜你喜欢

热点阅读