检查构建是否已从App / Play商店侧载或下载

时间:2018-11-09 18:21:57

标签: react-native production-environment sideloading test-environments

React Native在内部to check whether an app is a dev or release build内部使用__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
}

问题在于,对于从XCode和Android Studio侧载到设备上的所有构建,__DEV__的评估结果为false因此,为了在设备上进行测试,我们执行此操作在几个地方:

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

我们如何确定应用是从App Store还是Play商店中横向下载还是下载?

1 个答案:

答案 0 :(得分:0)

我建议不要使用基于{em>更安全,采用12因子的方法来使用各种__DEV__文件,而不是根据.env来切换键和数据。 react-native-config

这样,您可以在文件中.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上的说明应该足够清楚地说明如何根据构建类型使用每个文件。