简要:本系列文章讲会对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的部分优势,的更多相关文章

  1. Expo大作战(二十二)--expo分离后的部署(expokit)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  2. Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  3. Expo大作战(二十三)--expo中expo kit 高级属性(没干货)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  4. Expo大作战(二十)--expo中的Release channels(不重要*)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  5. Expo大作战(二)--expo的生命周期,expo社区交流方式,expo学习必备资源,开发使用expo时关注的一些问题

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  6. Expo大作战(四十一)【完】--expo sdk 之 Assets,BarCodeScanner,AppLoading

    Expo大作战系列完结! 简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与 ...

  7. Expo大作战(二十九)--expo sdk api之registerRootComponent(注册跟组件),ScreenOrientation(屏幕切换),SecureStore,

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  8. Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  9. Expo大作战(二十七)--expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

随机推荐

  1. Scala使用隐式转换进行比较

    Boy.scala class Boy(val name: String, val faceValue: Int) extends Comparable[Boy]{ override def comp ...

  2. Android通用简洁的下载器

    下载逻辑在android开发中可谓很常见,那么封装一个通用简洁的下载器时很有必要的.如果不想给工程引入一个很重的jar包那么可以直接复用下面的代码即可. 主要对外接口 构造函数 :     publi ...

  3. MySQL数据导入到Mongo

    背景:如题干所述,需要将一份数据导入到mongo数据库,减少项目依赖的数据源. 解决方案: 使用mongo自带的mongoimport工具. 首先在test库里创建一个空集合:[import_test ...

  4. 安装flutter和dart总结

    1 manjaro从软件仓库安装就行,但是也可以下载安装包.然后添加到Path目录 我是安装dart从软件仓库, flutter下载压缩包添加到path 1.1 需要将android sdk , ex ...

  5. Vue笔记:在项目中使用 SCSS

    背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...

  6. 揭开Future的神秘面纱——结果获取

    前言 在前面的两篇博文中,已经介绍利用FutureTask任务的执行流程,以及利用其实现的cancel方法取消任务的情况.本篇就来介绍下,线程任务的结果获取. 系列目录 揭开Future的神秘面纱—— ...

  7. PTA (Advanced Level) 1004 Counting Leaves

    Counting Leaves A family hierarchy is usually presented by a pedigree tree. Your job is to count tho ...

  8. Java NIO系列教程(十二) Java NIO与IO

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

  9. Spring AOP介绍及源码分析

    转自:http://www.uml.org.cn/j2ee/201301102.asp 软件开发经历了从汇编语言到高级语言和从过程化编程到面向对象编程:前者是为了提高开发效率,而后者则使用了归纳法,把 ...

  10. sqlplus sys as sysdba

    Enter user-name:sys Enter password:password as sysdba --以sys用户登陆的话 必须要加上 as sysdba 子句