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个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
随机推荐
- 微信小程序开发环境搭建
关注,QQ群,微信应用号社区 511389428 微信小程序可谓是今天最火的一个名词了,一经出现真是轰炸了整个开发人员,当然很多App开发人员有了一个担心,微信小程序的到来会不会给移动端App带来一个 ...
- shell脚本补缺
一.执行脚本的三种方法. chmod +x 添加执行权限 ./example.sh 相对路径 root/test/example.sh 绝对路径 bash example.sh ...
- sql的存储过程实例--循环动态创建表
创建一个存储过程,动态添加100张track表表名track_0 ~~ track_99注:sql的拼接只能用 CONCAT()函数 -- 创建一个存储过程 CREATE PROCEDURE crea ...
- 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致
打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...
- Apache 源码安装
8.20]# make[root@yahoo pcre-8.20]# make install 二.安装apache1.下载httpd-2.4.3.tar.gz,地址是:http://httpd.ap ...
- 如何优雅的控制goroutine的数量
1,为什么要控制goroutine的数量? goroutine固然好,但是数量太多了,往往会带来很多麻烦,比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来.比如: ; i < ...
- eclipse安装quick text search插件,全文搜索
主要有两种方法 1.InstaSearch 同样可以做到workspace下的全文搜索 可以使用eclipse marktplace中搜索instaSearch,与普通软件安装类似 安装成功后的界面如 ...
- 拓展KMP算法详解
拓展KMP解决的问题是给两个串S和T,长度分别是n和m,求S的每一个后缀子串与T的最长公共前缀分别是多少,记作extend数组,也就是说extend[i]表示S[i,n-1](i从0开始)和T的最长公 ...
- [转]Build beautiful, responsive sites with Bootstrap and ASP.NET Core
本文转自:https://docs.microsoft.com/en-us/aspnet/core/client-side/bootstrap?view=aspnetcore-2.1 Bootstra ...
- [转]Magento 2.2 Developer Documentation
本文转自:https://devdocs.magento.com/

