Начало работы кросс-промо (Game center)🔗
Для интеграции кросс-промо (Game center) необходимо выполнить несколько простых шагов
Шаг 1. Импортируйте модуль кросс-промо🔗
-
Добавьте модуль MRGSGameCenter
Unity:
Добавление в проект (общая инструкция)
Шаг 1. Добавьте источники
Для того, чтобы добавить MRGS в проект через Unity Package Manager (доступно с Unity 2018+) просто добавьте в файл
Packages/manifest.jsonразделscopedRegistries, добавив в него следующую запись:{ "dependencies": { ... }, "scopedRegistries": [ { "name": "MRGS", "url": "https://mrgs-nexus.my.games/repository/mrgs-uninty-plugins/", "scopes": [ "games.my.mrgs" ] } ] }Альтернативно, можно нажать
Edit -> Project Settings -> Package Manager -> '+' in scoped registry section, и заполнить поля в соответствии с данными выше.Шаг 2. Добавьте зависимость
- Нажмите
Window -> Package Manager -> select 'Packages: MyRegistries' from dropdown list, выберите пакетMRGSGameCenterиз списка, затем нажмите "Install" - Импортируйте модуль:
using MRGS;
- Загрузите последнюю версию библиотеки. Распакуйте архив.
- (Для интеграции unitypackage) В Unity нажмите
Assets -> Import Package -> Custom Package, и выберите пакетgames.my.mrgs.gamecenter.unitypackageиз скачанного архива. - (Для интеграции tgz) В Unity нажмите
Window -> Package Manager -> '+' -> Add package from tarball, и выберите пакетgames.my.mrgs.gamecenter-<version>.tgzиз скачанного архива. - Импортируйте модуль:
using MRGS;
iOS:
Добавление в проект (общая инструкция)
Шаг 1. Добавьте зависимости
Через Package collection
- В Xcode выберите File > Add Packages
- Выберите «+» > "Add Swift Package Collection"
- Вставьте URL:
https://mrgs-nexus.my.games/repository/ios-sdks/MRGSPackageCollection.json - Выберите модуль MRGSGameCenter из "MRGS Package Collection".
- Или вы можете выбрать пакет «MRGS» из "MRGS Package Collection" (содержит все модули mrgs в качестве продуктов), а затем выбрать только продукт "MRGS/GameCenter".
Отдельными пакетами
- В Xcode выберите File > Add Packages
- В строке поиска в правом верхнем углу вставьте URL:
https://mrgs-gitea.my.games/mrgs/mrgsgamecenter-ios-sdk.git - Добавьте модуль в свой проект
- Или вы можете вставить URL
https://mrgs-gitea.my.games/mrgs/ios-sdks.git, чтобы подключить пакет "MRGS", который содержит все модули mrgs в качестве продуктов, а затем выбрать только продукт "MRGS/GameCenter".
Шаг 2. Добавьте поддержку категорий ObjectiveC
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSGameCenter;или#import <MRGSGameCenter/MRGSGameCenter.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 добавьте последнюю версию MRGSGameCenter:
Чтобы добавить через subspecs:
Для добавления через отдельные модули:
Чтобы добавить все модули mrgs:
Шаг 3. Установите зависимости
- Выполните
pod install(илиpod install --repo-updateесли необходимо) - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSGameCenter;или#import <MRGSGameCenter/MRGSGameCenter.h>
Шаг 1. Добавьте зависимости
Добавьте зависимость в ваш Cartfile:
binary "https://mrgs-nexus.my.games/repository/ios-sdks/MRGSGameCenter/MRGSGameCenter.json" ~> 5.0.0Шаг 2. Установите зависимости
- Выполните
carthage update --use-xcframeworks - Добавьте загруженные фреймворки в свой проект (убедитесь, что опция "do not embed" включена)
- В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGServiceKit;или@import MRGSGameCenter;или#import <MRGSGameCenter/MRGSGameCenter.h>
- Загрузите последнюю версию библиотеки. Распакуйте архив.
-
Добавьте
MRGSGameCenter.xcframeworkиз скачанного архива в ваш проект (Перетащите библиотеки в раздел "Linked frameworks and Libraries") (для совместимости в архиве также находится MRGSGameCenter.framework - fat framework старого вида) -
Добавьте bundle с ресурсами:
- Добавьте
MRGSGameCenterResources.bundleв проект, перетащив его в структуру проекта. - Перейдите к разделу "Copy Bundle Resources" во вкладке "Build Phases", нажмите "+", и выберите необходимый бандл.
- Добавьте
-
В настройках проекта установите флаг
-ObjCв поле "Other linker Flags". - Импортируйте модуль в коде:
@import MRGSGameCenter;или#import <MRGSGameCenter/MRGSGameCenter.h> - Также, вы можете добавить из архива файлы
MRGServiceKit.hиmodule.modulemapв свой проект, либо в настройках проекта укажите путь до них в разделеBuild Settings -> Header search paths. Теперь вместо импорта каждого из наших фреймворков по отдельности, вы можете импортировать только один заголовочный файл:@import MRGServiceKit;
Android:
Добавьте зависимость в
build.gradleфайл:Скопируйте файл MRGSGameCenter.aar в директорию libs вашего проекта. Добавьте необходимые зависимости в файл build.gradle
dependencies { //... implementation(name: 'MRGSGameCenter', ext:'aar') implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' implementation 'androidx.vectordrawable:vectordrawable:1.1.0' } - Нажмите
Шаг 2. Установите делегат🔗
Затем необходимо установить делегат для получения уведомлений.
Далее необходимо реализовать методы делегат, который Вы установили ранее:
Данный делегат необходим для того, чтобы при его вызове, Вы могли показать пользователю уведомление, или отметить маркерами путь к витрине, сообщая о том, что для пользователя есть новые предложения.
Шаг 3. Покажите витрину🔗
Для показа воспользуйтесь методом:
- (void) showGameCenterfromViewController:(nullable UIViewController*)controller withSocialClassObject:(nullable MRGSGameCenterSocialClass*)socialInfo completion:(void (^ __nullable)(BOOL))completion;
То есть:
[[MRGSGameCenter sharedInstance] showGameCenterfromViewController:self withSocialClassObject:socialInfoFromApp completion:^(BOOL _) {
//Этот код будет выполнен после закрытия GameCenter
}];
Убедитесь в наличии настроенной рекламы на сервере
При первой интеграции в случае, если вам приходит ошибка загрузки, необходимо убедиться, что креативы и кампании заведены на сервере MRGS. В случае возникновения таких проблем, для проверки и заведения тестовых кампаний обратитесь к контактному лицу, указанному на странице с шагами интеграции.
Пример🔗
// Set a delegate
MRGSGameCenter.Instance.Delegate = this;
// ...
// Implementation of the delegate
public void OnGameCenterHasNewBonuses()
{
// Here we use markers to indicate the path to the button that opens the showcase
}
// ...
// По нажатию на кнопку необходимо вызвать метод показа:
MRGSGameCenter.Instance.Show();
// Set a delegate
[MRGSGameCenter sharedInstance].delegate = self;
// ...
// Implementation of the delegate
-(void)gameCenterHasNewBonuses{
// Here we use markers to indicate the path to the button that opens the showcase
}
// ...
// Call this method to show content:
[[MRGSGameCenter sharedInstance] showGameCenterfromViewController:self withSocialClassObject:nil completion:^(BOOL _) {
//This code will be executed after closing Game Center
}];
Тестирование🔗
Так как данные о новых доступных кампаниях мы обновляем раз в 12 часов с последнего входа в геймцентр на старте приложения, для тестирования мы добавили несколько методов.
Для тестирования воспользуйтесь следующими методами:
// Clear server cache
// When testing the delegate, it is necessary that the delegate indicating new bonuses must be called when clearing the cache during the next launch
MRGSGameCenter.Instance.ClearCache()
// Очистить загруженные данные(картинки) кампаний.
// Данный метод можно использовать для тестирования "чистого" открытия геймцентра, без заранее загруженных данных.
MRGSGameCenter.Instance.ClearLoadedData()
// Clear server cache
// When testing the delegate, it is necessary that the delegate indicating new bonuses must be called when clearing the cache during the next launch
[[MRGSGameCenter sharedInstance] clearGameCenterCache];
// Clear downloaded data (images) of the campaigns
// This method can be used to test the "clean" launch of Game Center without pre-loaded data
[[MRGSGameCenter sharedInstance] clearGameCenterLoadedData];
Что делать, если возникли проблемы с локализацией на iOS?
На iOS могут возникнуть ошибки с локализацией. Мы используем нативную локализацию, поэтому, сам проект должен ее поддерживать. Поэтому, если у вас возникли проблемы с локализацией, проверьте:
Первый вариант(более правильный и перспективный):
- В настройках проекта в пункте с локализацией есть как минимум русский и английские языки
- В проекте есть хотя бы один файл
Localizble.strings(даже пустой), он локализован на русский и английский и он добавлен в таргет для сборки (в результате внутри собранного приложения будут папки с именемязык.lproj) - Дефолтный язык локализации проекта(XCode) должен быть выставлен на английский.
Второй вариант(ручное указание поддерживаемых языков):
Добавить в Info.plist приложения ключ:
Автоматическое добавление ключа из второго варианта в Unity описано здесь.
Дата создания: 2020-03-02