GuardAurora — офлайн-приложение-компаньон для личной безопасности на Expo и React Native.
- Хранит доверенные контакты и до 50 событий SOS на устройстве.
- Запускает отменяемый трёхсекундный отсчёт и записывает локальное событие. SOS не вызывает экстренные службы и автоматически не уведомляет контакты.
- Открывает приложение телефона для звонка или создаёт SMS-черновик выбранному контакту. Перед отправкой пользователь проверяет и подтверждает сообщение.
- Измеряет общий уровень звука локально, пока включён мониторинг и приложение на экране. Аудио не сохраняется: временный файл, используемый измерителем, удаляется при остановке мониторинга или переходе приложения в фон. Определения звуков и распознавания опасности нет.
- При включённом мониторинге фиксирует три быстрых встряхивания, пока приложение открыто, как локальное событие SOS.
- Запрашивает геолокацию только по нажатию пользователя и может открыть полученные координаты в Google Maps. Если доступ уже разрешён, при запуске SOS один раз определяет текущие координаты для локальной записи SOS.
- Предлагает справку с заранее подготовленными ответами. Это не ИИ-сервис и не экстренная служба.
- Содержит политику конфиденциальности в приложении и функцию удаления локальных данных.
В приложении нет учётных записей, облачной синхронизации, push-уведомлений, автоматического вызова служб, аналитики, встроенной карты, проверенного справочника безопасных мест и оценки маршрутов. Не полагайтесь на приложение вместо местных экстренных служб.
npm ci
npm run typecheck
npx expo startnpm run build:webКоманда собирает Expo Web в dist. Веб-версия подходит для предварительного просмотра; разрешения браузера и доступ к датчикам отличаются от iOS и Android.
Добавьте переменные в окружение EAS для production-сборки. Не коммитьте настоящие .env-файлы, токены и пароли.
| Переменная | Нужна | Назначение |
|---|---|---|
GUARDAURORA_PRIVACY_POLICY_URL |
Нет | По умолчанию https://guard-aurora.vercel.app/privacy. |
GUARDAURORA_SUPPORT_URL |
Нет | По умолчанию https://guard-aurora.vercel.app/support. URL поддержки для карточки App Store. |
GUARDAURORA_SUPPORT_EMAIL |
Нет | По умолчанию romiisromie@gmail.com, отображается в приложении и на страницах помощи/политики. |
GUARDAURORA_CHAT_API_URL |
Нет | По умолчанию https://guard-aurora.vercel.app/api/chat. Адрес серверной функции ИИ-чата. |
SENTRY_DSN |
По желанию | Включает отправку отчётов об ошибках в Sentry. Пустое значение отключает отправку. Если включено, это нужно отразить в политике и формах магазинов. |
SENTRY_AUTH_TOKEN |
Только при настройке загрузки source maps | Секретный токен Sentry; сам по себе не включает загрузку карт исходников. Не храните его в Git и клиентском приложении. |
Вкладка «Помощь» может отвечать через ИИ-сервис Groq. Ключ API хранится только на сервере: функция api/chat.mjs работает на Vercel и читает переменные окружения проекта Vercel:
| Переменная (Vercel) | Нужна | Назначение |
|---|---|---|
GROQ_API_KEY |
Да, для ИИ | Ключ из GroqCloud. Без него чат автоматически использует офлайн-ответы. |
GROQ_MODEL |
Нет | По умолчанию openai/gpt-oss-120b. |
ИИ включается только после согласия пользователя в чате и выключается в разделе «Право». В Groq уходит только текст сообщений чата; контакты, координаты и журнал не отправляются. Groq по умолчанию не хранит запросы и не обучает на них модели.
Отчёты Sentry выключены, пока SENTRY_DSN пуст. Аналитический SDK не подключён. Не заявляйте, что мониторинг сбоев работает, пока не проверите событие из production-сборки в панели Sentry. Настройка загрузки source maps требует отдельной конфигурации EAS/Sentry.
Публичные страницы политики и поддержки подготовлены по URL выше. Сборки выполняются в EAS:
npx eas-cli login
npx eas-cli build --platform ios --profile production
npx eas-cli build --platform android --profile productionЗагрузка сборки в App Store Connect и Google Play Console требует аккаунтов владельца в Apple Developer и Play Console, карточек приложения, signing credentials, заполненных страниц магазина, точных сведений о конфиденциальности, скриншотов и заметок для модерации. Сама EAS-сборка приложение в магазин не публикует.
- Активировать Apple Developer Program и создать запись приложения в App Store Connect.
- Сверить Bundle ID
com.guardaurora.appв App ID, карточке App Store Connect и EAS. - Добавить App Store Connect app ID в production submit profile EAS.
- Заполнить карточку магазина по release guide.
- Решить, включать ли Sentry; проверить production-отчёт и раскрыть сбор данных SDK в формах магазинов.
- Проверить privacy report iOS и актуальные требования к privacy manifest сторонних SDK.
- Заполнить возрастной рейтинг по анкете Apple, регионы, скриншоты, описание, URL поддержки и privacy/data safety в App Store Connect и Play Console.
- Проверить на реальных устройствах iOS и Android разрешения, звонки/SMS-черновики, отмену/остановку SOS, офлайн-режим, отказ в геолокации и удаление данных.
- Выполнить store-сборки и пройти модерацию через реальные аккаунты разработчика.
Изменения исходного кода сами по себе не гарантируют одобрение магазина. Результат зависит от итоговой сборки, сторонних SDK, карточки приложения, данных владельца, проверки на устройствах и аккаунтов разработчика.