React Native打包
时间:2022-04-24
本文章向大家介绍React Native打包,主要内容包括Android平台打包、命令行发布版本、IOS平台打包、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
前面写了关于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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode精选好题(四)
- 【Android 直播软件开发:音视频硬解码篇】
- 知更鸟主题修改CSS:让凌乱的标签变得整洁清爽
- 浅谈 Android Dex 文件
- Tcp连接建立与连接释放
- Python Django开发 异常及解决办法(三)
- 有赞零售小票打印跨平台解决方案
- Angular [(ngModel)]的ng-dirty设置时机
- 有赞订单导出的配置化实践
- k2路由器刷系统
- 使用Seq搭建免费的日志服务
- html可伸缩侧边栏
- Dubbo 压测插件的实现——基于 Gatling
- html自定义checkbox样式
- 宝塔面板7.4.2及Windows面板6.8数据库鉴权漏洞 – 官方发布紧急安全更新