Перейти до основного вмісту

Меню команд

Перейдіть на сторінку або пошукайте в каталозі

ШІ-інструменти та скрипти

Перевірка конфігурації Expo EAS

Перевірте проєкти Expo та EAS перед збиранням, надсиланням або публікацією оновлення: секрети в змінних EXPO_PUBLIC_, конфігурації застосунку та eas.json, credentials.json поза .gitignore, dev-збірки в релізних профілях і небезпечні оновлення по повітрю.

$5.00

Що ви отримаєте: 1 файл · 53.69 KB · ZIP

Переглянути варіанти купівлі

Опис товару

EXPO_PUBLIC_OPENAI_API_KEY=... розміщує ваш ключ OpenAI відкритим текстом у кожній копії вашого застосунку, бо Expo копіює кожне значення EXPO_PUBLIC_, яке читає ваш код, у JavaScript-бандл. Продакшн-профіль збирання з "developmentClient": true надсилає клієнт для розробки користувачам магазину, а "disableAntiBrickingMeasures": true в app.json вимикає страховку оновлень для кожної збірки, включно з продакшн. Цей навик знаходить такі помилки та ще чотирнадцять помилок конфігурації Expo та EAS до випуску й підказує, як виправити кожну з них.

Ваш агент запускає сканер для app.json, app.config.js і app.config.ts, eas.json (коментарі та кінцеві коми допустимі), credentials.json, файлів .env, package.json і .gitignore, а також для посилань process.env.EXPO_PUBLIC_ у вашому коді на JavaScript і TypeScript. Він знає, які частини конфігурації застосунку Expo не включає до публічної конфігурації, простежує профілі eas.json через extends, читає правила .gitignore так само, як git, відрізняє публічні клієнтські ключі (публічні ключі Firebase, Supabase, Stripe і Clerk, RevenueCat, Mapbox, PostHog) від секретних і працює в монорепозиторіях з кількома застосунками. Він ніколи не запускає Expo, EAS CLI, конфігурацію вашого застосунку чи ваш код. Результат: BLOCK, REVIEW або NOT FLAGGED із зазначенням файлу, рядка, причини та безпечнішого підходу. Секрети ніколи не виводяться.

Що перевіряється

BLOCK (виправити до публікації)

  • E01: змінна EXPO_PUBLIC_, що містить секрет (у файлах .env, env збирання в eas.json або в коді): значення у форматі секретного ключа (секретні ключі Stripe, OpenAI, Anthropic, GitHub, AWS, ключ service_role Supabase та інші), ім'я, що закінчується на _SECRET, _SECRET_KEY, _PASSWORD, _PRIVATE_KEY, _SERVICE_ROLE_KEY або _AUTH_TOKEN, або API-ключ серверного ШІ-провайдера, поштового чи SMS-сервісу, наприклад EXPO_PUBLIC_OPENAI_API_KEY (імена ключів сховища, як-от EXPO_PUBLIC_AUTH_TOKEN_STORAGE_KEY, не позначаються)
  • E02: секрет в app.json або app.config: значення у форматі секрету або літеральний пароль чи секретне налаштування в extra, параметрах плагінів або hooks, пароль в URL або ...process.env, розгорнутий у конфігурацію
  • E03: секрет в eas.json: змінна env профілю збирання, ім'я якої закінчується секретною назвою (або є ключем серверного провайдера), задана літералом, ім'я API-ключа чи токена з довгим згенерованим значенням або будь-яке значення у форматі секрету
  • E04: credentials.json, зазначене в ньому сховище ключів або сертифікат розповсюдження, ключ App Store Connect або Google Play, указаний у submit в eas.json, або приватний ключ підпису коду expo-updates у проєкті без правила .gitignore, яке б його охоплювало
  • E05: профіль збирання production, release або store (не internal), що створює збірку для розробки: developmentClient true (зокрема через extends), конфігурація збирання iOS Debug або команда Gradle Debug
  • E06: updates.url через звичайний http на публічний хост без підпису в конфігурації застосунку, яка також дозволяє звичайний http (usesCleartextTraffic або NSAllowsArbitraryLoads)
  • E07: disableAntiBrickingMeasures true в app.json, що застосовується до кожної збірки

REVIEW (перевірити до релізу)

  • E11: usesCleartextTraffic true (expo-build-properties)
  • E12: NSAllowsArbitraryLoads true в ios.infoPlist (App Transport Security вимкнено)
  • E13: власний сервер оновлень без updates.codeSigningCertificate
  • E14: updates.url задано, але runtimeVersion відсутній, тому expo-updates залишається вимкненим
  • E15: expo-secure-store з configureAndroidBackup false, тоді як резервне копіювання Android дозволене
  • E16: змінна EXPO_PUBLIC_ або значення конфігурації застосунку з ім'ям як в API-ключа, що містить довгий згенерований літерал, який не є відомим публічним ключем
  • E17: app.config копіює змінну середовища із секретом або API-ключем (наприклад, OPENAI_API_KEY) в extra або параметри плагінів, звідки вона потрапляє в застосунок
  • E18: disableAntiBrickingMeasures true, прописаний в app.config
  • E19: newArchEnabled false в Expo SDK 55 або новішому, де це налаштування ігнорується
  • E20: будь-який інший updates.url через звичайний http на нелокальний хост: iOS та Android 9 і новіші типово відхиляють його, тому оновлення зазвичай не працюють

Що входить до комплекту

  • Сканер (Python 3.9+, лише стандартна бібліотека)
  • Посібник із правил із причиною, безпечнішим підходом і посиланням на офіційну документацію Expo або Apple для кожного правила
  • Ризикований і безпечний приклади монорепозиторіїв (три застосунки), а також реальний звіт сканера щодо ризикованого прикладу

Обмеження

Сканер читає текст файлів і ніколи не запускає app.config.js чи app.config.ts, тому значення, побудовані функціями або імпортами, не простежуються, а змінні середовища оцінюються за іменами, а не за значеннями. E04 ухвалює рішення за текстом .gitignore, а не за історією git, тому вже закомічений файл не виявляється. Змінні середовища EAS, що зберігаються на серверах Expo, не перевіряються, а проєкти EAS Update без підпису коду не позначаються, бо Expo пропонує підпис коду для EAS Update лише в платних тарифах. Нативні файли ios та android не читаються. Офіційний приклад клієнта custom-expo-updates-server дозволяє незашифрований трафік для свого сервера на localhost і навмисно позначається як E11 REVIEW. NOT FLAGGED не є гарантією.

Вміст

Один ZIP-файл з 31 файлом: SKILL.md, сканер у scripts/ (8 файлів Python), references/rules.md (кожне правило з причиною та безпечнішим підходом) і examples/ (20 файлів прикладів і report.md, реальний вивід сканера щодо ризикованого прикладу).

Як користуватися: це навик для агента: тека з файлом SKILL.md і скриптами Python, які може запускати ШІ-агент для програмування, наприклад Claude Code, Cursor або Codex CLI. Розпакуйте архів у теку навичок вашого агента (для Claude Code: ~/.claude/skills/), а потім попросіть агента перевірити ваш проєкт. Скрипти також працюють самостійно з Python 3.9 або новішим, нічого встановлювати не потрібно. Вони лише читають ваші файли: жодного доступу до мережі, нічого нікуди не надсилається.

Що ви отримаєте

1 файл · 53.69 KB

  • expo-eas-config-check-1.0.0.zipZIP · 53.69 KB
ЛіцензіяКомерційне використання дозволено
Перевірка пакетаПройдено

Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.

Опубліковано12 лист. 2026 р.
Розмір файлу53.69 KB
Формат файлуZIP
Версіяv1.0

Теги

expoeasreact-nativemobilesecurityai agent skill
R
RR HH

Поширені запитання

Чи отримаю я доступ одразу?

Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.

Чи можна використовувати його в комерційних проєктах?

Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.

Яка у вас політика повернення коштів?

Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.

Які формати та розміри файлів я отримаю?

Ви завантажите 1 файл - ZIP - загалом 53.69 KB.

Чи отримую я безкоштовні оновлення?

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

Ціна

$5.00