React Native打包

前面写了关于React的一系列入门章:http://lib.csdn.net/xiangzhihong8/5375/chart/React%20Native

欢迎大家吐槽,今天要说的是在Android和iOS两个平台如何打包的问题。

Android平台打包

Android平台有两种发布方式:一种是借助于命令行操作,另外一种是借助于Android Studio进行发布。

Android Studio平台发布

借助于Android Studio生成签名keystore,然后生成签名包,这和传统的Native开发一样。

此时,你会发现,你可以继续生成一个apk,并且可以安装,但是却无法运行,发生闪退。这是因为React-Native的android平台下默认没有生成资源文件也就是我们所有的js图片文件等等。

下面我们就来生成JS Bundle文件:

1,创建一个assets文件

创建一个assets文件在工程目录下,可以通过命令行操作,也可手动,具体的命名是:

mkdir -p Android/app/src/main/assets 

2,生成Bundle文件

生成Bundle文件的命令:

React-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

我们已经完全生成了bundle文件了,可以查看自己工程assets下的文件夹,如果生成,则再次签名运行就没有问题。

命令行发布版本

生成签名文件

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

修改android/gradle.properties文件

编辑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配置文件

...
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
        }
    }
}
...

生成签名APK包

./gradlew assembleRelease

完成之后便会在android/app/build/outputs/apk/app-release.apk生成可安装包。

IOS平台打包

相对于Android平台来讲,IOS平台的发布操作相对简单,只需要简单配置即可。

选择Product ⇒ Archive。

等待系统打包,打包出来的即使ipa文件

附:http://www.jianshu.com/p/32a99c273be1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DT乱“码”

myeclipse去除jsp校验错误

选择你的工程右击菜单 >> 点击MyEclipse菜单项的Exclude From Validation,如果你的工程里还 有其它需要它检验其合法性建议可以针对...

2555
来自专栏静默虚空的博客

图解使用VS的安装项目打包程序

背景 这段时间一直在做客户端程序的打包程序,遇到各种坑。因为以前没有任何这方面的经验,历经各种折腾,费尽九牛二虎之力总算是完成了。 虽然没有太多技术含量,但是因...

2345
来自专栏青玉伏案

iOS逆向工程之Hopper+LLDB调试第三方App

LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具。使用LLDB可以动态的调...

4019
来自专栏一只程序汪的自我修养

VS快捷键

2675
来自专栏Golang语言社区

golang使用protobuf

为什么要使用protobuf 最近的项目中,一直使用Json做数据传输。Json用起来的确很方便。但相对于protobuf数据量更大些。做一个移动端应用,为用户...

7315
来自专栏linux驱动个人学习

高通调试 SPI 屏的 bug

3362
来自专栏后端云

vm被systemd删除

发现计算节点重启后,所有的该节点上的vm被删除了,查看vm对应的qemu日志,qemu-kvm: terminating on signal 15 from p...

2384
来自专栏Danny的专栏

学习中遇到的小技巧 二 (陆续更新……)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1164
来自专栏Web 开发

用fiddler进行debug

昨晚在家里调试一个页面,弄了好一会,fiddler都没有抓到数据。最后Google之,才发现因为我等都装了SwitchySharp这类自动翻墙插件。导致Chro...

790
来自专栏建站达人秀

如何搭建 Express 网站

Express 是一种保持最低程度规模的灵活 Node.js Web 应用程序框架,为 Web 和移动应用程序提供一组强大的功能。nenggou 使用您提议的各...

4812

扫码关注云+社区

领取腾讯云代金券