iOS-приложение
Это руководство предназначено для разработчиков, которые собирают или настраивают iOS-приложение-компаньон LeadHub. Исходный код приложения написан на Swift и поддерживает iPhone и iPad.
Требования
- Xcode 15 или новее (только macOS)
- Swift 5.9 или новее
- Минимальная цель развёртывания iOS: iOS 15.0
- Учётная запись Apple Developer (необходима для TestFlight и распространения через App Store)
- Экземпляр LeadHub с действующим HTTPS-URL и активным API-ключом
Настройка проекта
- Откройте папку
ios/из вашей покупки LeadHub в Xcode. - Откройте файл
.xcworkspace(не.xcodeproj), если присутствуют зависимости CocoaPods или Swift Package Manager. - Выберите свою команду разработки в настройках Signing & Capabilities проекта.
- Соберите и запустите приложение на симуляторе или устройстве.
Архитектура
Приложение использует стандартную iOS-архитектуру:
- URLSession с пользовательским API-клиентом для HTTP-вызовов к LeadHub REST API
- Combine или async/await для асинхронных операций
- SwiftUI для пользовательского интерфейса
- CoreData для локального кэширования лидов между сеансами
- Apple Push Notification Service (APNs) для push-уведомлений
API-ключи хранятся в iOS Keychain с использованием фреймворка Security.
Процесс аутентификации
- Пользователь вводит URL экземпляра LeadHub и API-ключ на экране первоначальной настройки.
- Приложение отправляет запрос
GET /api/v1/health, чтобы проверить доступность экземпляра по HTTPS. - Проверяет действительность API-ключа с помощью тестового аутентифицированного запроса.
- URL и API-ключ сохраняются в Keychain.
Push-уведомления
Push-уведомления используют Apple Push Notification Service (APNs).
- В учётной записи Apple Developer создайте ключ APNs (файл .p8) в разделе Certificates, Identifiers & Profiles → Keys.
- Запишите Key ID и Team ID.
- В конфигурации бэкенда LeadHub задайте
APNS_KEY,APNS_KEY_ID,APNS_TEAM_IDиAPNS_BUNDLE_ID. - В Xcode включите функцию Push Notifications в разделе Signing & Capabilities.
При первом запуске приложение регистрируется для получения push-уведомлений и отправляет токен устройства в бэкенд LeadHub через API.
Сборка для распространения
- Создайте архив приложения через Product → Archive в Xcode.
- В окне Organizer нажмите Distribute App.
- Выберите App Store Connect для распространения через App Store или TestFlight для бета-тестирования.
- Следуйте инструкциям Xcode для загрузки.
Используемые API-эндпоинты
| Эндпоинт | Назначение |
|---|---|
GET /api/v1/health | Проверить подключение к экземпляру |
GET /api/v1/leads | Загрузить список лидов |
GET /api/v1/leads/{id} | Загрузить детали лида |
PATCH /api/v1/leads/{id} | Обновить статус или этап лида |
POST /api/v1/leads/{id}/tags | Добавить тег к лиду |
GET /api/v1/pipelines | Загрузить список воронок для выбора этапа |
Минимально необходимые права API-ключа
| Право | Причина |
|---|---|
read:leads | Просмотр лидов |
write:leads | Обновление статуса, этапа и тегов лида |
read:pipelines | Заполнение выбора этапа воронки |
Раскрытие информации о конфиденциальности в App Store
При отправке в App Store укажите следующее использование данных в разделе App Privacy:
- Контактная информация (электронная почта, телефон) — собирается от лидов, не от пользователей
- Идентификаторы (API-ключ) — привязан к пользователю, используется для аутентификации
- Данные об использовании — не собираются