Skip to main content

Muhit o'zgaruvchilari

Muhit o'zgaruvchilari konfiguratsiya qiymatlarini — API kalitlari, feature flag'lar, backend URL'lar — kodingizdan alohida saqlash imkonini beradi. Ular saqlanayotganda shifrlanadi va ish vaqtida konteyneringizga kiritiladi.

Nega muhit o'zgaruvchilaridan foydalanish kerak?

  • Xavfsizlik — API kalitlari manba kodingiz va GitHub repozitoriylaridan tashqarida qoladi
  • Moslashuvchanlik — kodni tahrirlash va qayta deploy qilmasdan konfiguratsiyani o'zgartiring
  • Bir nechta muhit — development va production uchun turli qiymatlardan foydalaning

Muhit o'zgaruvchilarini qo'shish

  1. Loyihangizni AppX'da oching
  2. Project Settings → Environment Variables bo'limiga o'ting
  3. Add Variable tugmasini bosing
  4. key va value ni kiriting
  5. Save tugmasini bosing

Saqlagandan so'ng, o'zgaruvchilarni ishlayotgan konteyneringizga sinxronlash uchun Push tugmasini bosing (quyidagi O'zgaruvchilarni yetkazish bo'limiga qarang).

Nomlash qoidasi

Expo'da muhit o'zgaruvchilari ilovangizning JavaScript kodida foydalanish mumkin bo'lishi uchun EXPO_PUBLIC_ prefiksi bilan boshlanishi kerak:

EXPO_PUBLIC_API_URL=https://api.myapp.com
EXPO_PUBLIC_STRIPE_KEY=pk_live_...
EXPO_PUBLIC_FEATURE_DARK_MODE=true

EXPO_PUBLIC_ prefiksisiz o'zgaruvchilar faqat build jarayonlari uchun mavjud, ilovangizning ish vaqti kodi uchun emas.

O'zgaruvchilarni kodda ishlatish

Ilovangizda muhit o'zgaruvchilariga kiring:

const apiUrl = process.env.EXPO_PUBLIC_API_URL;
const stripeKey = process.env.EXPO_PUBLIC_STRIPE_KEY;

AI kod yaratishda muhit o'zgaruvchilaringizga ham murojaat qilishi mumkin. Agar siz EXPO_PUBLIC_API_URL ni belgilagan bo'lsangiz, chatda: "API URL muhit o'zgaruvchisidan foydalanib API'dan foydalanuvchi ma'lumotlarini oling" deb aytishingiz mumkin, AppX esa undan to'g'ri foydalanadi.

O'zgaruvchilarni tahrirlash

  1. Project Settings → Environment Variables bo'limiga o'ting
  2. Tahrirlamoqchi bo'lgan o'zgaruvchidagi qalam belgisini bosing
  3. Qiymatni yangilang
  4. Save tugmasini bosing
  5. Push to Container tugmasini bosing

O'zgaruvchilarni kodda aniqlash

AppX loyiha kodingizni hali belgilanmagan muhit o'zgaruvchisi havolalari uchun avtomatik ravishda skanerlashi mumkin.

  1. Project Settings → Environment Variables bo'limiga o'ting
  2. Detect tugmasini bosing

AppX barcha loyiha fayllaringizni process.env.EXPO_PUBLIC_* havolalari uchun skanerlaydi va kodda ishlatilgan, ammo hali belgilanmagan har qanday o'zgaruvchilarni ro'yxatga oladi. Ularni aniqlash natijalaridan to'g'ridan-to'g'ri qo'shishingiz mumkin.

Bu ayniqsa AI generatsiyasidan keyin foydali — AI hali sozlamagan muhit o'zgaruvchilariga murojaat qilishi mumkin. Detect'ni ishga tushirish hech narsa qolib ketmasligini ta'minlaydi.

O'zgaruvchilarni konteynerga yetkazish

O'zgaruvchilarni qo'shgan yoki tahrirlangandan so'ng, ularni ishlayotgan konteyneringizga sinxronlash uchun Push tugmasini bosing. Konteyner yangi qiymatlarni yuklash uchun qisqa vaqtga (3–5 soniya) qayta ishga tushadi.

tip

Push tugmasi barcha muhit o'zgaruvchilarini konteynerga bir vaqtning o'zida sinxronlaydi. Har bir tahrirdan keyin push qilish o'rniga bir nechta o'zgartirish kiritib, ularni bitta amalda push qilishingiz mumkin.

O'zgaruvchilarni o'chirish

O'zgaruvchi yonidagi axlat qutisi belgisini bosing va tasdiqlang. Qo'llash uchun konteynerga push qiling.

caution

Kodingiz murojaat qiladigan o'zgaruvchini o'chirish ish vaqti xatolariga olib keladi. O'chirishdan oldin o'zgaruvchi kodingizda qayerda ishlatilganligini tekshiring.

Shifrlash

Barcha muhit o'zgaruvchisi qiymatlari AES-256 yordamida saqlanayotganda shifrlanadi. Qiymatlar hech qachon AppX ma'lumotlar bazasida ochiq matnda saqlanmaydi. Ular faqat ishga tushishda konteyneringizga kiritilganda shifrdan chiqariladi.

O'zgaruvchi qiymatlari AppX interfeysida niqoblangan — ular sukut bo'yicha •••••••• ko'rinishida ko'rsatiladi. Ko'rsatish uchun ko'z belgisini bosing.

Eng yaxshi amaliyotlar

Env var'lardan foydalaning:

  • API kalitlari va tokenlar
  • Muhitlar orasida farq qiladigan backend URL'lar
  • Feature flag'lar
  • Uchinchi tomon xizmati hisob ma'lumotlari (Firebase, Stripe, Sentry va h.k.)

Env var'lardan foydalanmang:

  • Katta konfiguratsiya obyektlari (o'rniga config faylidan foydalaning)
  • Ish vaqtida o'zgaradigan ma'lumotlar (ilova holati yoki ma'lumotlar bazasidan foydalaning)

Muhit o'zgaruvchilari va GitHub

Agar siz GitHub repozitoriysini ulagan bo'lsangiz, muhit o'zgaruvchilaringiz repoga push qilinmaydi. Ular AppX'da qoladi. Kimdir loyihani klonlaganda, ular maxfiy kalitlar uchun o'z qiymatlariga ega bo'lishlari kerak bo'ladi.

Umumiy ish uchun talab qilingan o'zgaruvchi nomlarini (lekin qiymatlarini emas) README faylingizda hujjatlashtiring.