1

React Native在__DEV__内部使用来检查应用程序是开发版还是发布版

我们使用它来确定我们是否应该指向我们的暂存环境或生产环境。

_host = (__DEV__) ? 'https://staging-api.foo-app.com' : 'https://api.foo-app.com';

if (Platform.OS === 'ios') {
  deploymentKey = (__DEV__) // iOS
    ? '5eCkg3JX3aip-D_a77eea5c3-0MXihVlUTZ4yy45a-432a-b73e-0a844d8b8310' // Staging
    : 'zGxOja-Yhchs87eea5c3-0d5a-432aQriLlV17gI-sdj55-b73e-0a844d8b8310'; // Production
} else {
  deploymentKey = (__DEV__) // Android
    ? 'vrrKTaq08Hid77eea5c3-0d5a-432aDhXbdI8-G9CnWmqc-b73e-0a844d8b8310' // Staging
    : '8DclNAKdcQkKlQDL77eea5c3-0d5a-432aslW1SeS6sDMo-b73e-0a844d8b8310'; // Production
}

问题是__DEV__评估false从 XCode 和 Android Studio 侧加载到设备的任何构建。因此,为了在设备上进行测试,我们在几个地方执行此操作:

// _host = (__DEV__) ? 'https://staging-api.foo-app.com' : 'https://api.foo-app.com';
_host = 'https://staging-api.foo-app.com';

我们如何确定应用程序是侧载的还是从 App Store 或 Play Store 下载的?

4

1 回答 1

1

我建议不要使用基于 ... 进行切换的密钥和数据,而是使用更安全的 12 因素方法和react-native-config__DEV__来使用各种.env文件。

这样,您可以在可以 d.d 的文件中拥有部署密钥和基于环境的变量.gitignore

你可以有类似的东西:

.env(暂存)

HOST=https://staging-api.foo-app.com
DEPLOYMENT_KEY_IOS=5eCkg3JX3aip-D_a77eea5c3-0MXihVlUTZ4yy45a-432a-b73e-0a844d8b8310
DEPLOYMENT_KEY_ANDROID=vrrKTaq08Hid77eea5c3-0d5a-432aDhXbdI8-G9CnWmqc-b73e-0a844d8b8310

.env.production(生产)

HOST=https://api.foo-app.com
DEPLOYMENT_KEY_IOS=vrrKTaq08Hid77eea5c3-0d5a-432aDhXbdI8-G9CnWmqc-b73e-0a844d8b8310
DEPLOYMENT_KEY_ANDROID=8DclNAKdcQkKlQDL77eea5c3-0d5a-432aslW1SeS6sDMo-b73e-0a844d8b8310

react-native-config说明应该足够清楚地说明如何根据构建类型使用每个文件。

于 2018-11-09T20:52:12.027 回答