标签:
React-Native开发步骤中,有一个步骤是使用命令 react-native start 去启动一个基于Node.js的服务,名字为packager。这个packager的主要功能是:1、监视当前目录下相关文件的改动;2、监听在本机的8081(默认)端口,为正确的请求提供相应的bundle文件。总结一点来说就是:bundle文件是根据项目目录下相应文件的最新内容来动态生成的,这样在开发过程中就能实时地观察我们修改JS文件所带来的程序的改变。因为这个bundle文件就是最后整个APP的应用逻辑,所以,对于APP打包来说,关键步骤就在于就是如何把这个bundle文件作为生成的静态文件打包进我们的APP中。
keytool -genkey -v -keystore my-test-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
代码中的 my-test-key.keystore 和 my-key-alias 替换成需要的名字。记住后续步骤中输入的密码等信息,需要用于第四步骤中的gradle脚本的编写。
在项目根目录下的 /android/app/src/main/ 目录下创建 assets 文件夹
首先:确保你在项目根目录下使用了 react-native start 命令启动了 packager,并可以使用浏览器测试能正确获取到bundle文件。
然后:确保你安装了curl 这个工具或者其他相同功能的工具。
最后:在项目根目录下输入如下命令:
curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
在项目根目录下的 /android/app 目录下,找到 build.gradle 文件,在其中添加:
// 在 defaultConfig 后面添加
signingConfigs { release { storeFile file("/my-test-key.keystore") // 替换成你实际密匙文件所在位置 storePassword "步骤1中的密码" // 替换成你实际的密码 keyAlias "my-key-alias" // 替换 keyPassword "步骤1中的密码" // 替换 } } // 修改原来的配置,主要是加入 signingConfig 这一行 buildTypes { release { minifyEnabled enableProguardInReleaseBuilds // 记得修改相应的功能启动 proguardFiles fetDefaultProguardFile(‘proguard-android.txt), ‘proguard-rules.pro‘ signingConfig signingConfigs.release } }
注意:路径中的 反斜线(\) 要改成 正斜线(/)。
Proguard 是一个 Java 字节码混淆压缩工具,可剔除项目文件夹中为使用的部分,有效减少APK的大小。在 build.gradle 文件中,启动 Proguard模块:
def enableProguardInReleaseBuilds = true
首先:进入项目根目录下的 /android/ 目录中;
然后:执行 gradle assembleRelease 命令。
注意:如果出现错误或者没有安装 gradle 工具,需要自行安装 gradle 工具和配置好 GRADLE_HOME 和 PATH,注意和 /android/gradle/wrapper/gradele-wrapper.properties 文件中的版本配置保持一致。也可以使用 gradle clean 清理一下缓存。
我们可以到 /android/app/build/outputs/apk/ 目录下看到了我们最终发布版的Apk文件。
Win7平台下React-Native开发之Android项目打包发布流程
标签:
原文地址:http://www.cnblogs.com/TwoWaterLee/p/5441139.html