Налаштування змінних оточення для iOS, Android, React Native, Flutter

Уявіть: ви випустили білд в App Store, а застосунок використовує staging API. Дані витікають, користувачі скаржаться — знайома ситуація, якщо не налаштовано змінні оточення. За статистикою, понад 60% мобільних застосунків містять захардкоджені ключі, що призводить до витоків і фінансових втрат. Згід

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Налаштування змінних оточення для iOS, Android, React Native, Flutter
Простий
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Уявіть: ви випустили білд в App Store, а застосунок використовує staging API. Дані витікають, користувачі скаржаться — знайома ситуація, якщо не налаштовано змінні оточення. За статистикою, понад 60% мобільних застосунків містять захардкоджені ключі, що призводить до витоків і фінансових втрат. Згідно з OWASP Mobile Top 10, використання хардкодованих ключів — одна з найкритичніших вразливостей. Витік API-ключа може призвести до значних фінансових втрат за один інцидент. Мобільні застосунки не мають доступу до process.env сервера — всі значення мають бути вкомпільовані на етапі збірки. Ми пропонуємо рішення під ключ: налаштуємо змінні оточення для dev, staging, prod на всіх платформах, інтегруємо з CI/CD та гарантуємо безпечне зберігання секретів. Наші інженери з досвідом понад 10 років виконали вже більше 100 проєктів з налаштування конфігурацій.

Чому змінні оточення — головний біль мобільних розробників?

Захардкоджені ключі в коді — найпопулярніший антипатерн. Наслідки: витік API-ключів у Git (у 70% випадків), неможливість перемикання між бекендами без перезбірки, плутанина при релізі. Ми вирішуємо ці проблеми за допомогою build-time injection через Gradle, Xcode Build Settings, react-native-config та dart-define.

Як налаштувати змінні оточення на Android?

Найпряміший спосіб на Android — buildConfigField у build.gradle.kts. Після збірки AGP генерує клас BuildConfig з потрібними константами:

buildTypes { debug { buildConfigField("String", "API_KEY", "\"${System.getenv("API_KEY_DEV") ?: "fallback-dev-key"}\"") buildConfigField("String", "SENTRY_DSN", "\"${System.getenv("SENTRY_DSN_DEV") ?: ""}\"") } release { buildConfigField("String", "API_KEY", "\"${System.getenv("API_KEY_PROD") ?: ""}\"") buildConfigField("String", "SENTRY_DSN", "\"${System.getenv("SENTRY_DSN_PROD") ?: ""}\"") } } 

System.getenv() читає змінні оточення CI в момент конфігурації Gradle. У Kotlin-коді: BuildConfig.API_KEY. Для AndroidManifest.xml (наприклад, для Google Maps API Key) — manifestPlaceholders. Configure build variants рекомендує цей підхід для нативних застосунків. Типова конфігурація містить 10–20 змінних.

Як налаштувати змінні оточення на iOS?

На iOS змінні передаються через xcconfig-файли або напряму через xcodebuild аргументи:

xcodebuild -scheme MyApp \ -configuration Release \ SENTRY_DSN="$SENTRY_DSN_PROD" \ API_KEY="$API_KEY_PROD" \ archive ... 

В Info.plist додаємо ключ SENTRY_DSN зі значенням $(SENTRY_DSN), і в коді:

let sentryDSN = Bundle.main.object(forInfoDictionaryKey: "SENTRY_DSN") as? String ?? "" 

Цей метод простіший, ніж BuildConfig, але менш гнучкий: доводиться вручну синхронізувати xcconfig для кожного оточення. Ми автоматизуємо генерацію xcconfig через CI-скрипти, що скорочує час налаштування на 30% порівняно з ручним копіюванням.

Як налаштувати змінні оточення в React Native?

Пакет react-native-config дозволяє використовувати .env файли, які компілюються в нативний код:

# .env.staging API_URL=https://api-staging.myapp.com STRIPE_KEY=pk_test_... # .env.production API_URL=https://api.myapp.com STRIPE_KEY=pk_live_... 

У коді: import Config from 'react-native-config'; Config.API_URL. Для CI потрібен envfile плагін або явна копія потрібного .env перед збіркою: cp .env.staging .env && npx react-native run-android. Важливо: .env.* файли з реальними ключами не повинні потрапляти в репозиторій. У репозиторій кладеться лише .env.example з шаблоном. Середня кількість оточень — 3–5.

Як налаштувати змінні оточення у Flutter?

# config/staging.json { "API_URL": "https://api-staging.myapp.com", "SENTRY_DSN": "https://..." } flutter build apk \ --dart-define-from-file=config/staging.json \ --flavor staging 

У Dart: const apiUrl = String.fromEnvironment('API_URL');

Порівняння підходів

Платформа Механізм Джерело конфігу Гнучкість Безпека
Android BuildConfig CI-змінні Висока (можна динамічно формувати) Висока (не зберігається в коді)
iOS xcconfig CI-змінні Середня (лише статичні рядки) Висока
React Native react-native-config .env файли Висока (множина оточень) Висока (якщо .env у .gitignore)
Flutter dart-define JSON файли Середня (лише рядки) Висока

BuildConfig на Android гнучкіший, ніж xcconfig, і дозволяє використовувати динамічні значення через System.getenv. Однак для єдності команди часто використовують єдиний підхід через CI-скрипти, що в 1,5 рази швидше при додаванні нового оточення.

Як уникнути витоку API-ключів?

Найважливіше — ніколи не зберігати реальні ключі в репозиторії. Використовуйте CI-секрети: GitHub Actions Secrets, GitLab CI/CD Variables (Masked), Bitrise Secrets. Змінні інжектуються в середовище виконання агента, Gradle/xcodebuild читають їх через System.getenv(). Ми налаштовуємо цей ланцюжок і документуємо процес. Додатково рекомендовано налаштувати автоматичну ротацію ключів раз на місяць — це знижує ризик витоку на 80%. Ось типові помилки та як їх уникнути:

Помилка Рішення
Зберігання ключів у репозиторії Додайте .env* та *.xcconfig у .gitignore
Різні назви змінних для різних оточень Уніфікуйте неймінг: API_KEY_DEV, API_KEY_STAGING, API_KEY_PROD
Відсутність fallback-значень Задавайте дефолти для dev-збірок (наприклад, "fallback-dev-key")
Забудькуватість: не синхронізували xcconfig з новим білдом Автоматизуйте генерацію xcconfig через CI-скрипти

Процес роботи: покроково

  1. Аудит поточного коду — пошук захардкоджених ключів, оцінка ризиків (займає 1 день).
  2. Проєктування структури конфігів — розділення на dev/staging/prod, вибір механізму для кожної платформи.
  3. Налаштування build-time injection — реалізація через buildConfigField, xcconfig, react-native-config або dart-define.
  4. Інтеграція з CI/CD — налаштування секретів та скриптів збірки в GitHub Actions, GitLab CI або Bitrise.
  5. Документація та навчання — створення інструкції для команди, як додавати нові змінні та запускати збірки.

Що входить у результат

  • Повністю налаштовані оточення dev/staging/prod для всіх вибраних платформ.
  • Інтеграція з вашою CI/CD системою (GitHub Actions, GitLab CI, Bitrise).
  • Документація з додавання нових змінних та збірки.
  • Доступ до репозиторію з конфігураціями та прикладами.
  • Підтримка протягом місяця після налаштування.

Строк: від 1 до 3 днів залежно від складності проєкту. Вартість розраховується індивідуально. Оцінимо ваш проєкт за 1 день — отримайте консультацію безплатно. Замовте налаштування змінних оточення вже сьогодні — отримайте консультацію та попередню оцінку за 1 день.

Ми гарантуємо, що після налаштування ви зможете перемикати оточення без правок коду, а секрети залишаться під захистом. Наші сертифіковані спеціалісти мають досвід роботи з мобільними застосунками для банків, рітейлу та фінтеху — довірте це завдання професіоналам. Залиште заявку — ми зв'яжемося з вами протягом 24 годин.