Перейти к содержанию

Подключение 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:

target 'MyProject' do
    pod 'MRGS', '~> 5.0.0', :subspecs => ['Core']
end

Для добавления через отдельные модули:

target 'MyProject' do
    pod 'MRGService', '~> 5.0.0'
end

Чтобы добавить все модули mrgs:

target 'MyProject' do
    pod 'MRGS/AllKits', '~> 5.0.0'
end

Шаг 3. Установите зависимости

  • Выполните pod install (или pod install --repo-update если необходимо)
  • Импортируйте модуль в коде: @import MRGServiceKit; или @import MRGService; или #import <MRGService/MRGService.h>

Шаг 1. Добавьте зависимости

Добавьте зависимость в ваш Cartfile:

binary "https://mrgs-nexus.my.games/repository/ios-sdks/MRGService/MRGService.json" ~> 5.0.0

Шаг 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 сборки. Используйте правильные ключи инициализации

app_settings

Внимание! Вызов любых методов (кроме GDPR) до вызова метода старта sdk может привести к неопределенному поведению MRGS. Будьте внимательны, не начинайте работу с MRGS до вызова метода инициализации!

Использование заголовков

Мы поддерживаем C-Modules, технологию более "умного" импорта заголовочных файлов, которая ускоряет сборку приложения. Каждый наш фреймворк представлен соответствующим модулем, поэтому для импорта вы можете воспользоваться конструкцией типа #import <MRGSBank/MRGSBank.h> или @import MRGSBank;

Запрос трекинга пользователя на iOS 14+

В случае, если вы хотите показать попап запроса на разрешения трекинга (получения IDFA) в iOS 14, можете воспользоваться нашими методами показа. Обычно IDFA необходим для трекинга рекламы, подробнее можете прочитать по ссылке выше.

Шаг 3 (Опциональный) - Добавьте трекинг входа в игровой аккаунт🔗

Если ваше приложение использует идентификатор игрока (USER_ID), его необходимо передать в MRGS с помощью метода:

[MRGSUsers setUserId:<USER_ID>];

Шаг 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>];

Для того, чтобы отслеживать 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, мы рекомендуем убедиться в том, что библиотека работает корректно. О том как провести данную процедуру, читайте в разделе Проверки интеграции и поиск неисправностей


Последнее обновление: 2025-01-21
Дата создания: 2020-01-20