Подключение iOS SDK🔗
Минимальные требования🔗
Минимальная поддерживаемая версия iOS 11.0 и XCode 14.1.
Интеграция🔗
Для интеграции библиотеки MRGS необходимо выполнить всего пять простых шагов
Шаг 1 - Добавьте библиотеку в проект🔗
Шаг 1. Добавьте зависимости
Через Package collection
- В Xcode выберите File > Add Packages
- Выберите «+» > "Add Swift Package Collection"
- Вставьте URL:
https://mrgs-nexus.my.games/repository/ios-sdks/MRGSPackageCollection.json - Выберите модуль MRGService из "MRGS Package Collection".
- Или вы можете выбрать пакет «MRGS» из "MRGS Package Collection" (содержит все модули mrgs в качестве продуктов), а затем выбрать только продукт "MRGS/Core".
Отдельными пакетами
- В Xcode выберите File > Add Packages
- В строке поиска в правом верхнем углу вставьте URL:
https://mrgs-gitea.my.games/mrgs/mrgservice-ios-sdk.git - Добавьте модуль в свой проект
- Или вы можете вставить URL
https://mrgs-gitea.my.games/mrgs/ios-sdks.git, чтобы подключить пакет "MRGS", который содержит все модули mrgs в качестве продуктов, а затем выбрать только продукт "MRGS/Core".
Шаг 2. Добавьте поддержку категорий ObjectiveC
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGService;или#import <MRGService/MRGService.h>
Шаг 1. Добавьте источники
В вашем podfile добавьте источники в начало файла:
source 'https://github.com/CocoaPods/Specs.git' # For main repo
source 'https://mrgs-gitea.my.games/mrgs/cocoapods-specs.git' # For MRGS repo
Шаг 2. Добавьте зависимости
В target добавьте последнюю версию MRGService:
Чтобы добавить через subspecs:
Для добавления через отдельные модули:
Чтобы добавить все модули mrgs:
Шаг 3. Установите зависимости
- Выполните
pod install(илиpod install --repo-updateесли необходимо) - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGService;или#import <MRGService/MRGService.h>
Шаг 1. Добавьте зависимости
Добавьте зависимость в ваш Cartfile:
Шаг 2. Установите зависимости
- Выполните
carthage update --use-xcframeworks - Добавьте загруженные фреймворки в свой проект (убедитесь, что опция "do not embed" включена)
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGService;или#import <MRGService/MRGService.h>
- Загрузите последнюю версию библиотеки. Распакуйте архив.
-
Добавьте
MRGService.xcframeworkиз скачанного архива в ваш проект (Перетащите библиотеки в раздел "Linked frameworks and Libraries") (для совместимости в архиве также находится MRGService.framework - fat framework старого вида) -
В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGService;или#import <MRGService/MRGService.h> - Также, вы можете добавить из архива файлы
MRGServiceKit.hиmodule.modulemapв свой проект, либо в настройках проекта укажите путь до них в разделеBuild Settings -> Header search paths. Теперь вместо импорта каждого из наших фреймворков по отдельности, вы можете импортировать только один заголовочный файл:@import MRGServiceKit;
Обратите внимание
Необходимые системные фреймворки будут добавлены в параметры линковщика автоматически (Для работы данного функционала в разделе "Build settings" поле Link Frameworks Automatically должно быть выставлено в true), но в случае, если данный функционал не работает, ниже приведен список системных библиотек, от которых зависит MRGS SDK: AdSupport, SystemConfiguration, CoreTelephony, CoreData, CoreLocation, iAd, StoreKit.
Шаг 2 - Вызовите метод инициализации🔗
Вызовите метод инициализации [MRGService startWithServiceParams:] в методе didFinishLaunchingWithOptions вашего AppDelegate. В качестве аргументов необходимо указать MRGS_APP_ID, CLIENT_SECRET.
@import MRGService;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// MRGService settings
MRGServiceParams *mrgsParams = [[MRGServiceParams alloc] initWithAppId: <MRGS_APP_ID> secret: <CLIENT_SECRET>];
// Start MRGS
[MRGService startWithServiceParams:mrgsParams];
}
MRGS_APP_ID и CLIENT_SECRET
MRGS_APP_ID - ID приложения на сайте MRGS. CLIENT_SECRET - Клиентский ключ. Их можно получить на сайте MRGS в разделе настройки вашего приложения
Важно! Не забывайте что эти параметры отличаются для Android и iOS сборки. Используйте правильные ключи инициализации

Внимание! Вызов любых методов (кроме GDPR) до вызова метода старта sdk может привести к неопределенному поведению MRGS. Будьте внимательны, не начинайте работу с MRGS до вызова метода инициализации!
Использование заголовков
Мы поддерживаем C-Modules, технологию более "умного" импорта заголовочных файлов, которая ускоряет сборку приложения. Каждый наш фреймворк представлен соответствующим модулем, поэтому для импорта вы можете воспользоваться конструкцией типа #import <MRGSBank/MRGSBank.h> или @import MRGSBank;
Запрос трекинга пользователя на iOS 14+
В случае, если вы хотите показать попап запроса на разрешения трекинга (получения IDFA) в iOS 14, можете воспользоваться нашими методами показа. Обычно IDFA необходим для трекинга рекламы, подробнее можете прочитать по ссылке выше.
Шаг 3 (Опциональный) - Добавьте трекинг входа в игровой аккаунт🔗
Если ваше приложение использует идентификатор игрока (USER_ID), его необходимо передать в MRGS с помощью метода:
Шаг 4 - Добавьте трекинг платежей🔗
По умолчанию MRGS автоматически соберет все данные о платежах с помощью автотрекинга, дополнительно никаких действий делать не нужно.
Важно
- Трекинг платежей необходим в том случае, если вы не используете модуль MRGSBank.
- Убедитесь, что на сайте https://mrgs.astrum.team в настройках вашего приложения заполнены поля с ключами для валидации платежей и включена настройка "Только валидация платежей (без обработки)".
- MRGS автоматически отправит информацию о покупках во все настроенные SDK (AppsFlyer, Firebase, MyTracker), если подключены соответствующие модули
- Автотрекинг автоматически отключается при использовании модуля MRGSBank.
В случае, если вы не хотите использовать автотрекинг, то вам необходимо выключить автоматическое отслеживание платежей, и воспользоваться методом для прямой передачи данных о платеже (нерекомендуемый подход):
// MRGService settings on SDK start
mrgsParams.automaticPaymentTracking = false;
// Tracking payment when it happens
[MRGSMetrics sendPaymentInfoForProduct: <SKProduct* object> transaction: <SKPaymentTransaction* object>];
Шаг 5 - Добавьте отслеживание Deeplink'ов🔗
Для того, чтобы отслеживать Deeplink(А также для корректной работы некоторых модулей MRGS), необходимо добавить следующий код в AppDelegate:
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[MRGService application:application didFinishLaunchingWithOptions:launchOptions];
return YES;
}
-(BOOL) application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options
{
[MRGService application:application openURL:url options:options];
return YES;
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
return [MRGService application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
}
Если используется механизм UIWindowSceneDelegate ( iOS 13 и выше ):
@implementation SceneDelegate
-(void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts{
[MRGService scene: scene openURLContexts: URLContexts];
}
-(void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity{
[MRGService scene: scene continueUserActivity: userActivity];
}
Проверка интеграции🔗
После завершения интеграции MRGS, мы рекомендуем убедиться в том, что библиотека работает корректно. О том как провести данную процедуру, читайте в разделе Проверки интеграции и поиск неисправностей
Дата создания: 2020-01-20