Appearance
Установка iOS SDK
Шаг 1. Установка SDK
Cocoapods
Добавьте в Podfile:
bash
target 'MyApp' do
use_frameworks!
pod 'REES46'
# ...
endSwift Package Manager
- Кликните меню
File - Выберите
Swift Packages - Кликните
Add Package Dependency... - Укажите URL репозитория с SDK:
https://github.com/rees46/ios-sdk.git
Шаг 2. Запуск сессии
Минимально необходимый режим старта сессии:
swift
import REES46
personalizationSDK = createPersonalizationSDK(shopId: "YOUR_SHOP_ID") { error in
if let error {
// Инициализация завершилась с ошибкой, можно ее обработать
return
}
// Сессия поднята, только теперь можно вызывать методы SDK. Обновляйте UI на главном потоке
}Пример со всеми возможными параметрами:
swift
personalizationSDK = createPersonalizationSDK(
shopId: "YOUR_SHOP_ID",
apiDomain: "api.rees46.ru",
stream: "ios",
enableLogs: false,
autoSendPushToken: true,
sendAdvertisingId: false,
parentViewController: rootViewController,
enableAutoPopupPresentation: true,
needReInitialization: false
) { error in
if let error {
// обработка ошибки инициализации
return
}
}Дополнительные свойства для расширенного управления SDK:
| Свойство | Значение по-умолчанию | Назначение |
|---|---|---|
apiDomain | api.rees46.ru | Кастомный домен REES46 API в случае on-premise |
stream | ios | Стрим |
enableLogs | false | Булевый параметр для включения логов |
autoSendPushToken | true | Автоматически получать mobile push токен |
parentViewController | nil | Без этого параметра in-app попапы не будут показываться |
needReInitialization | false | Флаг необходимости провести переинициализацию SDK и запрос новых did и sid с сервера |
sendAdvertisingId | false | Булевый флаг о том, чтобы вместо генерации did использовать Apple Advertising Identifier (IDFA) |
enableAutoPopupPresentation | true | Булевый флаг о том, чтобы автоматически показывать in-app попапы |
Важно
Если вы установили sendAdvertisingId в true, нужно добавить NSUserTrackingUsageDescription в файл Info.plist приложения. Это обязательно. В этом случае SDK будет автоматически запрашивать разрешение на доступ к IDFA.
Флаг needReInitialization
По-умолчанию мобильный SDK не делает повторных запросов к серверу во время инициализации, если в хранилище телефона уже есть did и sid. Это ускоряет запуск приложения и уменьшает количество запросов к API.
Но если у вас в приложении есть выбор страны и для каждой страны есть отдельный ключ API, то did от одного магазина не будет работать в другом и все запросы рекомендаций, поиска и пр. будут возвращаться с ошибкой.
Поэтому, при смене страны (по факту API-ключа) нужно вызвать инициализацию с этим флагом, чтобы SDK получил новый did с сервера.
При обычном запуске приложения в инициализации SDK этот флаг передавать не нужно.
Пример:
swift
import REES46
let sdk = createPersonalizationSDK(
shopId: AppEnvironments.shopId,
apiDomain: AppEnvironments.apiDomain,
enableLogs: true,
parentViewController: (window?.rootViewController)!,
needReInitialization: true,
sendAdvertisingId: true,
) { error in
if let error {
// обработка ошибки инициализации
return
}
}