expo 笔记

2,271 阅读3分钟
什么是expo?
Expo是通用React应用程序的框架和平台。它是围绕React Native和本机平台构建的一组工具和服务,可帮助您从同一JavaScript / TypeScript代码库在iOS,Android和Web应用程序上开发,构建,部署和快速迭代。

1.初始化项目:expo init + 项目名   
下分为两个工作流程 =>托管工作流程和裸工作流程
托管工作流程下三个选项=>minimal最小应用程序,带有typescript的空白模板,使用react导航的示例屏幕和标签
裸工作流程下两个选项=>minimal最小应用程序,带有typescript的最小应用程序
2.开始项目:yarn  start
3.使用真机下载expo客户端
4.通过App.js修改配置应用
5.上传应用到cdn  expo publish
6.构建和部署(暂未理解)
7.空中更新应用: 一旦您的应用程序要进行测试或在商店中使用,您可能就不想再重复一次此过程来进行一些小的更改。
expo publish
8.发送通知:在真机上通知栏显示通知信息 在expo官网上有推送通知的网页工具可以测试(工具中的指令怎么获得未了解)


工作流程:
Managed workflow
托管工作流程
适合新手 
托管工作流使用expo-cli,移动设备上的Expo客户端
托管工作流的开发人员不使用Xcode或Android Studio,他们只是编写JavaScript代码并通过app.json管理诸如应用程序图标和启动屏幕之类的配置
Bare workflow
裸工作流程
可以在Expo SDK中使用大多数API,但是尚不支持构建服务,通知,无线更新以及使用app.json的轻松配置


两者的局限区别
managed workflow
支持许多设备API,但并非所有iOS和Android API都可用
SDK不支持所有类型的后台代码执行,不支持操作系统播放控件提供后台音频,并且无法在后台处理推送通知
expo程序大小限制  ios的在20M    android在15M
不能通过弹出轻松地迁移到该工作流程
唯一受支持的推送通知服务是Expo通知服务
支持最低版本为Android 5+和iOS 10+
免费构建有时可能会排队

bare workflow
bare workflow中使用任何所需的通知服务,但不能使用Expo通知服务
构建服务仅在托管工作流程中有效
空中更新服务仅在托管工作流程中起作用
必须使用标准本机工具在每个平台的本机项目中配置应用程序图标,启动屏幕而不是使用app.json进行一次配置


安装
使用Expo开发应用程序需要两种工具:本地开发工具和移动客户端以打开您的应用程序
pc端开发工具expo cli     前提(需要安装node和git)
全局安装指令:npm install -g expo-cli
检查CLI版本:expo --version
在终端中查看版本可用的命令列表:expo --help
证安装是否成功:expo whoami
安装:watchman
手机端expo客户端   (所需的操作系统版本:最低Android版本为Lollipop(5),最低iOS版本为iOS 10.0。)


expo指令:
全局安装指令:npm install -g expo-cli
检查CLI版本:expo --version
在终端中查看版本可用的命令列表:expo --help
证安装是否成功:expo whoami
expo android (在连接的Android设备上的Expo客户端中打开您的应用)
--offline     脱机模式运行此命令
--config [path]    指定app.json的路径
https://docs.expo.io/versions/v35.0.0/workflow/expo-cli/
查看日志
使用console.log,console.warn和console.error
查看来自Android设备或模拟器的日志
确保已安装Android SDK
确保已在设备上启用USB调试(仿真器不需要)。
run adb logcat
调试(没理解)
堆栈跟踪
终端显示错误来自第LinksScreen.js10行和第15列(字符)上的文件
renderText = () => <Text>hello world</Text>