2017-08-03 138 views
1

我最近从Web上下文移动到移动环境中(构建React Native应用程序)。网络世界中最强大的流程之一是持续交付。我希望为React Native移动环境重新创建一个持续交付管道,并投入生产。我的理解是,只要javascript包获取更新,而不是基本的本地组件,这是可能的。Fastlane的持续交付

我一直在寻找的博客,如: https://hiddentao.com/archives/2017/02/17/continuous-integration-for-react-native-with-testfairy-testflight-deploy/,看来,FASTLANE是在移动生态系统持续集成最常用的解决方案,但关于持续交付的帖子都在地面上有点薄。

这是因为这是不可能的? “只是更新js包”的承诺土地是谎言吗?如果不是不可能的话,我将如何配置fastlane以直接推动生产?或者我会使用其他工具?它通常被认为是空间中的反模式吗?如果是这样,为什

回答

1

It IS可能更新React Native应用程序的JavaScript部分。

Fastlane是构建和部署移动应用程序的好工具,但它本身并不是一个持续的交付工具。但是,与某些其他CI工具(Jenkins等)一起使用时,它可以轻松配置以某个设定的时间间隔触发的应用商店或测试版,或基于特定的触发器进行触发。

Fastlane主要用于解决与构建和部署本机应用程序相关的问题,因此它非常适用于将本地RN应用程序构建/部署到应用程序商店,但可能不是管理JS推送的最佳工具。但是也有一些流行的推动JS代码的一些工具:

https://deploy.apphub.io/

http://microsoft.github.io/code-push/

是专门为此建立了两个流行的机制和部署更新提供的命令行工具JavaScript的。这些可以在Jenkins(或其他CI服务器)中进行配置,而不必使用fastlane。

0

由于@john_ryan指定您可以使用CodePush进行应用程序更新。尽管如此,还是值得考虑一下这个解决方案的一些功能:

  1. 如果您需要添加一些本地模块,则无法使用热更新。
  2. 如果您更新了React Native版本,严格不建议使用热更新。在大多数情况下,后果将是悲伤的。
  3. 新用户将在第一次启动应用时获得过时的内置版本。实际版本将仅在第二次运行时提供。

鉴于上述所有CodePush是最好的:

  1. 为了减少为关键漏洞的应用程序更新时间。当然,在这种情况下,您也必须尽快发布本机更新。
  2. 非主要更新。对于大多数情况下的重大更新,您需要更新屏幕截图,应用程序描述,发行说明并提请用户关注更新。由于“第二次运行更新”周期,主要更改的热更新不适合。
  3. 在小部分用户上测试新更新的稳定性。 A/B测试
  4. A/B测试。

无论如何,您应该使用fastlane。对于定制构建,更新商店元信息,截图等非常酷。对于测试版本交付,我建议Crashlytics Beta