世博会和发布渠道......如何识别dev / prod和真正的渠道

问题描述 投票:0回答:1

我在世博会发布渠道上遇到了一些麻烦。我不是React Native和Expo的专家,它使事情变得更加容易:

如果我使用本地开发环境,则不会设置通道(这是有道理的)。

但是最终版本或“制作”也没有通道设置,这使我不清楚如何识别“生产”和“发展”。

然后,如果我想添加一个频道,就会增加一个新的复杂程度......就像'staging'一样,它会有一个频道......

锦上添花的是,在我的部署系统(Circle)中,我必须在一个通道中构建'开发'(否则NODE_ENV将是“生产”)

有人弄清楚如何正确使用频道吗? :)

基本上,我找不到比这更好的解决方案:

import { Constants } from 'expo'
const ENV= {production:{},staging:{},development:{}}

// Having fun with channels
const channel = Constants.manifest.releaseChannel;
if (channel === null || channel === undefined || channel === '') {
  if (process.env.NODE_ENV === 'production') {
    return ENV.production;
  }
  if (process.env.NODE_ENV === 'development') {
    return ENV.development;
  }
}
if (channel === 'staging') {
  return ENV.staging;
}
if (channel === 'development') {
  return ENV.development;
}
return ENV.production;

非常感谢!

reactjs react-native expo
1个回答
2
投票

我认为你错过了什么是发布渠道。

当您的应用程序使用exp build构建时,它将绑定到一个发布通道(默认为default)。稍后,如果您想进行OTA更新,您可以运行exp publish,它将在发布通道上发布您的代码(再次:默认为default)。

当您向用户发送独立版本时,您不希望通过OTA向他们提供未经测试的代码等,因此您希望用户将发布通道设置为ex。 prod

这与NODE_ENV完全分开,我并没有真正看到将它们绑在一起的重点。

© www.soinside.com 2019 - 2024. All rights reserved.