最近使用React Native做起了移动应用,之前做过一点react,有一点react基础,后来听说RN还不错,就做起了RN项目。为了让辛辛苦苦开发的项目想在手机端运行,就涉及到发布打包。

防止自己长时间不用忘记了,这里做一下笔记,在记录点滴的同时,希望可以帮助正在奋斗的你。

好啦,不多说了,直接说详细的步骤,请认真读完,相信你,也可以轻轻松松发布你的app应用。我把打包总结成了五个步骤:

1、修改打包后的应用名称,同时,ic_launcher.png为应用图标

2、React Native初始化项目在Android平台下默认显示方式跟随设备放置方式而改变。如果希望移动应用的显示方式始终不变,可以修改RN项目目录下的“\android\app\src\main\AndroidManifest.xml”文件,为.MainActivity加入android:screenOrientation="portrait"> 属性。修改的内容如下图所示:

3、生成应用的秘钥

Java开发环境自带了秘钥生成工具。可以在命令行窗口执行以下命令生成一个发布秘钥:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

其中,my-release-key.keystore是生成的秘钥库文件名称,my-key-alias是生成的秘钥库别名。

实际上生成秘使用的是别名golf
keytool -genkey -v -keystore golf.keystore -alias golf -keyalg RSA -keysize 2048 -validity 20000,按回车键后,命令行

会提示输入秘钥库keystore和对应的秘钥的密码,还有名称、公司名称、公司简称等一大串信息。最后会在当前目录下生成一个指定名称的秘钥文件。如果运行后提示找不到keytool,请检查Java JDK安装目录下得bin子目录是否在环境变量path中。如果不在 ,将其添加后就可以找到。

最后,秘钥文件生成后,将它移动到项目目录的“android\app”子目录下。

4、修改gradle配置文件

为了生成发布版本,需要修改RN项目中Android项目的build.gradle文件。这个文件位于项目目录“android\app”子目录下,需要修改的内容如下所示:

android {
compileSdkVersion 23
buildToolsVersion "23.0.1" defaultConfig {
applicationId "cn.yunhwa.android.zdl.soip"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
} signingConfigs {
release {
storeFile file("./golf.keystore")//使用刚才生成的秘钥文件名称
storePassword "mygolf"//使用生成秘钥时输入的密码
keyAlias "golf"//使用生成密钥时输入的别名
keyPassword "mygolf"//使用生成密钥时输入的别名密码
}
} splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release//这个别忘记加上
}
}

5、最后是打包命令
在命令行状态下,进入项目目录的android子目录下,输入命令:

./gradlew assembleRelease(不好使),废了很大劲

最后使用gradlew assembleRelease --console plain命令,按下回车键,打包成功,会生成发布版本安装包。

它的位置是:项目目录/android/app/build/outputs/app/app-release.apk.

android  ctrl+M dev settings,F1开启设置

RN app打包的更多相关文章

  1. App 打包并跳过 AppStore 的发布下载

    一.App 打包 (编译 -> 链接 -> 打包) 1) 下载发布版的证书并安装. 2)Target -> Build Setting,改为发布版本的 profile 3) Targ ...

  2. iOS开发之 xcode6 APP 打包提交审核详细步骤

    一. 在xcode6.1和ios10.10.1环境下实现app发布 http://blog.csdn.net/mad1989/article/details/8167529 http://jingya ...

  3. ios App 打包

    ios 版本的 App 打包两种方式: 1. 命令行 xcodebuild exportArchive -exportFormat ipa 2. 通过 xcode Product -> Arch ...

  4. iOS开发基础:最新的APP打包上架流程

    之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...

  5. 勾勾街——一个专注于免越狱免签名的苹果ios APP打包生成的网站

    自涛舅舅研发的“苹果ios APP自助生成系统”上线以来,每天都有大量的用户注册和生成免越狱app,为什么? 因为我们有明显的技术优势,APP不需要上架appstore, 生成APP又不需要企业签名证 ...

  6. ionic app打包和签名

    ionic app打包和签名 1.首先在项目根目录执行  ionic platform add android  生成Android平台. 2.配置应用签名:在根目录下执行以下命令 keytool - ...

  7. Django APP打包重用

    引言 有时候,我们需要将自己写的app分发(dist)给同事,分享给朋友,或者在互联网上发布,这都需要打包.分发我们的app. Django的子系统重用是基于app级别的.也就是一个项目可以包含多个互 ...

  8. hbuilder IOS APP 打包与发布2

    在上一篇的<hbuilder IOS APP 打包与发布>中,请求 的 是APP ids .  ios开发证书 .和开发配置文件  ,   这一篇中就不写发布证书和配置文件的请求,因为流程 ...

  9. 【2】IOS APP打包发布

    目的: 本文的目的是对IOS APP打包发布做了对应的介绍,大家可根据文档步骤进行mac环境部署: 申请苹果开发者账号 此处略 创建申请证书 这样做的目的就是为你的电脑安装发布许可证,只有这样你的电脑 ...

随机推荐

  1. c++ std::ifstream

    #include <iostream> #include <plug/plug.h> using namespace std; //使用宽字符,我猜是为了适应那些要使用宽字符的 ...

  2. 获取TXT文件,解决读取TXT乱码问题,查找所输入字是否在TXT文件中,

    /// <summary> /// 查看是否存在 /// </summary> /// <param name="str"></param ...

  3. IEnumerable 与 Iqueryable 的区别

    IEnumerable 和 IQueryable   共有两组 LINQ 标准查询运算符,一组在类型为 IEnumerable<T> 的对象上运行,另一组在类型为 IQueryable&l ...

  4. 带jsk证书,请求https接口

    首先是三个返回的实体类 BaseVo.java package https2; import java.io.Serializable; import java.lang.reflect.Invoca ...

  5. jsp 通用获取所有表单值传后台

    新建一个js文件,自定义一个jquery 函数. 在jsp页面引用 下面为:自定义函数 $.fn.GetDivJson = function (prifix,orgModel) { var $oute ...

  6. 并发编程7 管道&事件&信号量&进程池(同步和异步方法)

    1,管道 2.事件 3.信号量 4.进程池的介绍&&进程池的map方法&&进程池和多进程的对比 5.进程池的同步方法和异步方法 6.重新解释同步方法和异步方法 7.回调 ...

  7. python的socket的学习

    一.Socket相关知识 1.socket是什么: socket是应用层与TCP/IP协议族通信的中间软件抽象层,他是一组接口.在设计模式中,Socket其实就是一个门面模式. 它把复杂的TCP/IP ...

  8. Java 之异常

    异常概述 异常: 是在运行时期发生的不正常情况. 在 java 中用类的形式对不正常情况进行了描述和封装. 描述不正常情况的类, 就称为异常类. 异常体系 父类: Throwable (JDK 文档) ...

  9. Perceptual Generative Adversarial Networks for Small Object Detection

    Perceptual Generative Adversarial Networks for Small Object Detection 感知生成对抗网络用于目标检测 论文链接:https://ar ...

  10. git发布代码到github过程和常见错误

    在对git有了基本了解之后,并且常常看到很多人在github上发布代码和开源项目时,就会想如何也把自己的代码发布到github上,并能够不断的跟踪版本变化. 现在就有几个想要做的事. 一.如何把自己已 ...