React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名)

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

  • (1)修改图标和名称:
    找到 根目录/android/app/src/main/res


    React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名)_第1张图片
    效果图.png
  • (2) 关掉模拟器,关掉服务器,关掉cmd后重启即可


    React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名)_第2张图片
    效果图

(2) RN安卓打包上线

(1) 生成一个签名密匙

  • 用 keytool 命令生成一个私有密钥,
    在Windows上keytool命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你需要在命令行中先进入那个目录才能执行如下命令。
在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 参数后边的别名,在后面你在为应用签名的时候需要用到,所以暂时记录一下这个别名。

----------------------------
截图如下:
  • 需要注意:
    (1)如果JDK的bin文件夹在c盘需要用管理员方式打开。
    (2)输入密匙口令看不到输入结果,看上去没有反应,不用管,写好之后回车
React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名)_第3张图片
keytool命令.png

(2) 设置gradle变量

  • 把my-release-key.keystore文件放到你工程中的 android/app 文件夹下。
  • (项目根目录/android文件夹) 中找到 gradle.properties(没有这个文件你就创建一个),添加如下的代码(注意把其中的****替换为相应密码),注意:直接在最后面添加下面的代码即可,原来的代码不要管。
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/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
        }
    }
}
...

像下面这样写也可以:

  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包

  • cmd命令行 进入(项目根目录/android)目录下执行以下命令:

gradlew assembleRelease

------------------------------
注意:
(1) 以上是windows平台的做法
(2) 打包前请保证所有的图片都以英文命名,否则会导致打包不成功
React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名)_第4张图片
打包成功.png

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


React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名)_第5张图片
app-release.apk存放位置

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

你可能感兴趣的:(React-Native学习之路(14) - 安卓打包上线 + (修改logo和应用名))