Проверьте, была ли сборка загружена или загружена из App / Play Store - PullRequest
0 голосов
/ 09 ноября 2018

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?

1 Ответ

0 голосов
/ 09 ноября 2018

Вместо ключей и данных, которые переключаются на основе __DEV__ ..., я мог бы предложить использовать различные .env файлы, используя, , намного более безопасный , 12-факторный подход с реаги- нативная конфигурация .

Таким образом, вы можете иметь ключи развертывания и переменные среды в файлах, которые могут быть .gitignore d.

Вы можете иметь что-то вроде:

.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

act-native-config инструкции должны быть достаточно ясными о том, как вы будете использовать каждый файл на основе типа сборки.

...