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
detach
your 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个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
随机推荐
- Storm中的定时任务
1.全局定时器 import java.util.Map; import backtype.storm.Config; import backtype.storm.Constants; import ...
- Bash算术运算
使用let命令 let let let let let let let 使用expr命令 - ` # + ` # \* ` # / ` # / ` # − \* ` # +` # + -*· # -* ...
- 在商城系统中使用设计模式----策略模式之在spring中使用策略模式
1.前言: 这是策略模式在spring中的使用,对策略模式不了解对同学可以移步在商城中简单对使用策略模式. 2.问题: 在策略模式中,我们创建表示各种策略的对象和一个行为,随着策略对象改变而改变的 c ...
- Docker环境的持续部署优化实践
最近两周优化了我们持续部署的程序,收效显著,记录下来分享给大家 背景介绍 那年公司快速成长,频繁上线新项目,每上线一个项目,就需要新申请一批机器,初始化,部署依赖的服务环境,一个脚本行天下 那年项目发 ...
- 【详解】JNI(Java Native Interface)(一)
前言: 一提到JNI,多数编程者会下意识地感受到一种无法言喻的恐惧.它给人的第一感觉就是"难",因为它不是单纯地在JVM环境内操作Java代码,而是跳出虚拟机与其他编程语言进行交互 ...
- (转)第十一篇:springboot集成swagger2,构建优雅的Restful API
声明:本部分内容均转自于方志明博友的博客,因为本人很喜欢他的博客,所以一直在学习,转载仅是记录和分享,若也有喜欢的人的话,可以去他的博客首页看:http://blog.csdn.net/forezp/ ...
- POJ 1061 青蛙的约会(拓展欧几里得算法求解模线性方程组详解)
题目链接: BZOJ: https://www.lydsy.com/JudgeOnline/problem.php?id=1477 POJ: https://cn.vjudge.net/problem ...
- 移动端常见bug汇总001
点击样式闪动 Q: 当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景. A:根本原因是-webkit-tap-highlight-color,这个属性 ...
- ASP.NET MVC获取上传的路径
刚才有网友问及,怎样获取<input type='file'>的值? Insus.NET测试了一下,在Inetnet Explor之下似乎没有问题,但是FireFox获取到的只是文件名. ...
- MVC的使用
演示产品源码下载地址:http://www.jinhusns.com