热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Expo大作战(二十)expo中的Releasechannels(不重要*)

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对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这块东西没有详细看,大家可以来和我交流

更多>>

接下来就开始撸码


发布频道

介绍
使用Expo中的发布渠道,通过为用户提供URL或配置独立应用程序,向用户发送不同版本的应用程序。 在下列情况下您应该使用发布渠

  1. 你有一个生产应用程序,需要一个测试环境。
  2. 您有多个版本的应用。

频道发布

通过运行发布您的版本:

exp publish --release-channel

用exp cli。 您的用户可以在Expo客户端应用程序中看到此版本&#xff0c;并带有参数化的URL https://exp.host/&#64;username/yourApp?release-channel&#61; <您的频道>。 如果您不指定频道&#xff0c;您将发布到默认频道。

频道建立&#xff08;Build with Channels&#xff09;

通过运行构建您的独立应用程序

exp build:ios --release-channel

exp build:android --release-channel

用exp cli。 生成的二进制文件只会提取在指定频道下发布的发布。 如果您不指定频道&#xff0c;则您的二进制文件将从默认频道提取发布。

从代码访问频道

您可以使用清单对象中的releaseChannel字段访问发布版本的频道。

Expo.Constants.manifest.releaseChannel在开发模式下不存在。它确实存在&#xff0c;但是当你明确地发布/构建它时&#xff08;It does exist, however when you explicitly publish / build with it.&#xff09;。

示例工作流程

考虑一种情况&#xff0c;即您有一个用于在Expo Client上进行测试的Staging堆栈&#xff0c;以及一个用于推送TestFlight的生产堆栈&#xff0c;然后将其推广到AppStore。

在Staging堆栈上&#xff0c;运行exp publish --release-channel staging。您的测试用户可以通过在URL的查询参数中指定频道&#xff08;例如https://exp.host/&#64;username/yourApp?release-channel&#61;staging&#xff09;&#xff0c;然后在其中打开URL来查看应用的分期版本网页浏览器&#xff0c;最后用Expo客户端扫描QR码。或者&#xff0c;他们可以直接在移动设备上打开该URL。

在生产堆栈上&#xff0c;通过运行exp publish --release-channel prod-v1释放您的应用程序的v1版本。您可以通过运行exp build来将此版本的应用程序构建到独立的ipa中&#xff1a;ios --release-channel prod-v1。您可以发布到prod-v1频道&#xff0c;将更新推送到您的应用。独立应用程序将使用prod-v1频道上最新的兼容版本进行更新。

如果你有一个你不想让V1用户获得的新版本&#xff0c;通过运行exp publish --release-channel prod-v2并使用exp build&#xff1a;ios --release-channel prod-v2构建它&#xff0c;发布你的应用的第2版。使用prod-v2 ipa的用户只会从该频道获取发行版。

您可以继续使用exp publish --release-channel prod-v1更新您的应用v1&#xff0c;未在Apple App Store中更新到最新prod-v2 ipa的用户将继续接收最新的prod-v1版本。

通过ExpoKit使用发行渠道

由于exp build不适用于ExpoKit项目&#xff0c;因此您可以通过修改EXShell.plist&#xff08;iOS&#xff09;或Constants.java&#xff08;Android&#xff09;中的releaseChannel项来手动编辑本机项目的发布频道。

使用发布渠道进行环境变量配置

环境变量不是显式存在的&#xff0c;但是您可以利用发布渠道来实现这一点&#xff01;

假设你有一个释放这样的构建的工作流程&#xff1a;

  • exp publish --release-channel prod-v1

  • exp publish --release-channel prod-v2

  • exp publish --release-channel prod-v3

  • exp publish --release-channel staging-v1

  • exp publish --release-channel staging-v2

您可以创建一个函数来查找特定版本并设置正确的变量。

function getApiUrl(releaseChannel) {if (releaseChannel &#61;&#61;&#61; undefined) return App.apiUrl.dev // since releaseChannels are undefined in dev, return your default.if (releaseChannel.indexOf(&#39;prod&#39;) !&#61;&#61; -1) return App.apiUrl.prod // this would pick up prod-v1, prod-v2, prod-v3if (releaseChannel.indexOf(&#39;staging&#39;) !&#61;&#61; -1) return App.apiUrl.staging // return staging environment variables
}

当然这一节内容还有很多&#xff0c;至于发布频道这个介绍&#xff0c;我也理解不透彻&#xff0c;大家可以转移到官网详细了解&#xff01;


 

下一张继续介绍&#xff0c;这一篇主要介绍了&#xff1a;expo中的Release channels&#xff0c;接下来会翻译expo中的分离&#xff0c;以及分离后的项目如何部署&#xff0c;最后翻译expo的sdk api&#xff0c;然后expo大作战系列就终结了&#xff01;欢迎大家关注我的微信公众号&#xff0c;这篇文章是否被大家认可&#xff0c;我的衡量标准就是公

众号粉丝增长人数。欢迎大家转载&#xff0c;但必须保留本人博客链接&#xff01;

 




推荐阅读
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
mobiledu2502910181
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有