Expo大作战(二十一)--expo如何分离(detach),分离后可以比react native更有优势,但也失去了expo的部分优势,
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网
我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981
【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发】
相关文章:
Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用
Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题
Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等
Expo大作战(四)--快速用expo构建一个app,expo中的关键术语
Expo大作战(五)--expo中app.json 文件的配置信息
Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
Expo大作战(七)--expo如何使用Genymotion模拟器
Expo大作战(八)--expo中的publish以及expo中的link,对link这块东西没有详细看,大家可以来和我交流
接下来就开始撸码
分离到ExpoKit
ExpoKit是一个Objective-C和Java库,允许您将Expo平台和现有的Expo项目用作较大标准本地项目的一部分 - 您通常会使用Xcode,Android Studio或反应本机初始化创建该项目。
这个是来做什么的?
如果您在XDE中创建了Expo项目并且想要添加自定义本机模块的方式,本指南将解释如何使用ExpoKit来达到此目的。
通常,expo应用程序是用纯JS编写的,从不“下降(drop down)”到本地iOS或Android层。这是expo理念的核心,也是exoi快速而强大使用的一部分。
但是,在某些情况下,高级开发人员需要在expo开箱即用之外的本地功能。最常见的情况是,当一个项目需要特定的本地模块时,它不受React Native Core或Expo SDK的支持。
在这种情况下,Expo允许您从Expo iOS / Android客户端分离纯JS项目(Expo allows you to
detachyour pure-JS project from the Expo iOS/Android clients),为您提供可以使用Xcode和Android Studio打开并构建的本地项目。这些项目将依赖于ExpoKit,所以你已经构建的所有东西都会像以前一样继续工作。我们称之为“分离”,因为你仍然依赖expo的SDK,但你的项目不再住在标准的expo客户端。您可以控制本地项目,包括自己配置和构建它们。
我应该分离吗?(Should I detach?)
如果出现以下情况,您可能需要分离
- 您的expo项目需要expo目前不支持的本地模块。我们一直在扩大expo会的SDK,所以我们希望你永远不会是这样。但是它发生了,特别是如果你的应用程序有非常特定和不常见的本地需求。
如果:
- 您只需将应用程序分发到iTunes Store或Google Play即可。在这种情况下,expo可以为你制作二进制文件。如果你分离,我们不能再为你自动构建。
- 编写本机代码让你感到不舒服。分离的应用程序将要求您管理Xcode和Android Studio项目。
- 您可以享受expo带来的无痛React Native升级版。在你的应用程序被分离后,重做React Native中的更改会对你的项目产生不同的影响,你可能需要根据你的具体情况来计算它们。
- 你需要expo推送通知服务。分离后,由于Expo不再管理推送证书,因此您需要管理自己的推送通知管道。
- 你依靠在expo社区寻求帮助。在您的原生Xcode和Android Studio项目中,您可能会遇到不属于expo领域的问题。
说明
以下步骤用于将纯JS项目(例如从XDE创建的项目)转换为依赖于ExpoKit的本机iOS和Android项目。
分离之后,所有JS文件将保持不变,但我们还将在项目文件夹中创建ios和android目录。这些将分别包含Xcode和Android Studio项目,并且它们将依赖于React Native和Expo的核心SDK。
您仍然可以从XDE开发和测试您的项目,并且您仍然可以以相同的方式发布您的Expo JS代码。但是,如果您添加未包含在expo中的本机依赖项,则其他用户将无法使用expo应用运行您应用的这些功能。您需要自己分发本地项目。
注意:detach目前是alpha功能,您可能会遇到问题。您的项目必须运行Expo SDK 16.0.0或更新版本才能分离。请自行承担风险,并请就您遇到的任何反馈意见或问题与我们联系。
1.安装exp
- 如果你没有它,运行npm install -g exp来获得我们的命令行库。
- 如果您之前没有使用过exp或XDE,您需要做的第一件事就是使用exp login登录您的expo户。
2.确保你在app.json中有必要的键
分离需要与构建独立应用程序相同的键。在继续下一步之前,请遵循这些指示。
3.分离
在您的项目目录中运行 exp detach。这将下载所需的依赖关系,并在ios和android目录下创建本地项目。
4.设置并运行您的本地项目
恭喜你,你现在有一个本地项目与expo!按照使用ExpoKit进行开发下的指导来完成设置和运行。
5.进行本地更改
你可以在Xcode和Android Studio项目中做任何你想做的事情。
要为React Native添加第三方本机模块,应支持诸如react-native link 等非expo特定指令。阅读有关更改ExpoKit项目中本地依赖关系的更多详细信息。
6.分发你的应用程序
从XDE / exp发布你的JS仍然可以工作。只要应用程序重新加载应用程序,您的应用程序的用户就会在其设备上获得新的JS;如果它没有改变,你不需要重建你的本地代码。
如果您确实进行本地更改,那么没有您的本机代码的用户如果尝试使用依赖于这些更改的功能,则可能会遇到崩溃。
如果您决定将您的应用分配为ipa或apk,它会自动打到您应用的发布网址,而不是您的开发XDE网址。阅读关于你的应用的JS网址的高级细节。
一般来说,在将您的应用程序一直用于制作之前,浏览高级 ExpoKit主题指南是一个不错的主意。
下一张继续介绍,这一篇主要介绍了:expo如何分离(detach),分离后可以比react native更有优势,但也失去了expo的部分优势,欢迎大家关注我的微信公众号,这篇文章是否被大家认可,我的衡量标准就是公
众号粉丝增长人数。欢迎大家转载,但必须保留本人博客链接!
Expo大作战(二十一)--expo如何分离(detach),分离后可以比react native更有优势,但也失去了expo的部分优势,的更多相关文章
- Expo大作战(二十二)--expo分离后的部署(expokit)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(二十三)--expo中expo kit 高级属性(没干货)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(二十)--expo中的Release channels(不重要*)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(四十一)【完】--expo sdk 之 Assets,BarCodeScanner,AppLoading
Expo大作战系列完结! 简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与 ...
- Expo大作战(二十九)--expo sdk api之registerRootComponent(注册跟组件),ScreenOrientation(屏幕切换),SecureStore,
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(二十七)--expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
随机推荐
- docker学习实践之路[第一站]环境安装
安装虚拟机(VMware Workstation) 这步就不多说了,下载完软件之后一路点击下一步,直至安装完成. 安装Ubuntu 16.4 server 下载ubuntu 16.4,并安装在虚拟机中 ...
- python for dblp.xml
由于最近处理数据时涉及到dblp.xml,刚开始下载时dblp.xml只有300多M,但解压之后就有1.9G,没有什么东西能够打开,所以必须要用工具来处理,在python中sax包能够一边解析一边处理 ...
- Dynamo(Amazon分布式存储引擎)
参考资料: http://blog.csdn.net/zgl_dm/article/details/6291984 http://blog.csdn.net/cywosp/article/detail ...
- JAVA框架之Hibernate【配置文件详解】
Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hi ...
- JavaScript -- Navigator
-----040-Navigator.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...
- git 删除远程分支文件夹
把不需要版本控制的文件提交到远程分支上后,需要删除远程分支上的文件,用以下操作即可: git rm -r –cached dirname //删除远程文件夹,但保留本地文件夹 git commit - ...
- 软件架构设计学习总结(15):远程通信(RPC,Webservice,RMI,JMS、EJB、JNDI的区别)对比
总结这些概念都是易混淆,最基本概念定义复习和深入理解,同时也是架构师必备课程 RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请 ...
- [Node.js] 3、搭建hexo博客
一.安装新版本的nodejs和npm 安装n模块: npm install -g n 升级node.js到最新稳定版 n stable 二.安装hexo note: 参考github,不要去其 ...
- 关于使用$.ajax调用ashx文件和$.post调用ashx使用中遇到的问题
同样返回 int i = 1; string strJson = "{\"result\":" + i + "}"; context.Res ...
- 基于asp.net mvc的近乎产品开发培训课程(第二讲)
演示产品源码下载地址:http://www.jinhusns.com/Products/Download

