Домашняя страница
Unity-плагин RuStore для работы с облачным сервисом конфигурации приложения
RuStore Remote Config это облачный сервис, который позволяет изменять поведение и внешний вид вашего приложения, не требуя от пользователей загрузки обновления приложения. SDK инкапсулирует в себе запрос конфигурации с сервера, кэширование, фоновое обновление. Поддерживаются версии Unity 2022.3.37f1+ (требуется Gradle выше 7.3), Unity 6000+.
Подключение в проект
Из сетевого расположения (рекомендуется)
Пакеты RuStore публикуются в npm-registry и подключаются к проекту через Package Manager без ручного скачивания архивов.
- Откройте настройки: Edit → Project Settings → Package Manager.
- В разделе Scoped Registries нажмите + и заполните поля:
- Name —
RuStore Nexus. - URL —
https://nexus-external.vkteam.ru/repository/npm-unity-rustore-exposed/. - Scopes —
ru.rustore.
- Name —
- Откройте Window → Package Manager — в списке источников появится реестр RuStore Nexus.
- Выберите RuStore Nexus и установите пакет
ru.rustore.remoteconfigкнопкой Install. Зависимостьru.rustore.coreустановится автоматически.
Из локального расположения
Установка через Package Manager
- Для подключения скачайте со страницы релизов пакеты:
ru.rustore.core-version.tgz.ru.rustore.remoteconfig-version.tgz.
- Импортируйте пакеты в проект через Package Manager (Window → Package Manager → + → Add package from tarball…).
*Установка через .unitypackage
- Скачайте файл
RuStoreUnityRemoteConfigSDK-version.unitypackageсо страницы релизов. - Импортируйте его в проект (Assets → Import Package → Custom Package…).
Клонирование репозитория
Для установки из исходного кода воспользуйтесь инструкцией по клонированию.
Для каждого артефакта в релизе доступны файлы контрольных сумм (.sha256) и цифровой подписи (.sig), которые могут использоваться для проверки целостности и подлинности артефакта после скачивания.
Подсказка
Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
После установки обновите зависимости проекта с помощью External Dependency Manager (Assets → External Dependency Manager → Android Resolver → Force Resolve).
Установка External Dependency Manager
External Dependency Manager для Android поставляется в составе пакета RuStoreCore. Для установки выполните следующие действия.
Откройте RuStoreCore в окне менеджера пакетов (Window → Package Manager → Packages RuStore → RuStoreCore). Перейдите на вкладку Sample. Импортируйте сэмпл External Dependency Manager.
Настройка проекта
Откройте настройки проекта: Edit → Project Settings → Player → Android Settings.
В pазделе Publishing Settings включите следующие настройки.
- Custom Main Manifest.
- Custom Main Gradle Template.
- Custom Gradle Properties Template.
В разделе Other Settings настройте:
- package name.
- Minimum API Level = 24.
- Target API Level = 34.
Откройте настройки External Dependency Manager: Assets → External Dependency Manager → Android Resolver → Settings, включите следующие настройки.
- Use Jetifier.
- Patch mainTemplate.gradle.
- Patch gradleTemplate.properties.
Инициализация SDK
Инициализация RuStoreUnityRemoteConfigClient с параметрами UpdateBehaviour.Default и UpdateBehaviour.Snapshot должна происходить в момент Application.onCreate(), так как при запуске фоновой синхронизации SDK должна быть проинициализирована.
Для этого выполните расширение класса Application и добавьте в метод onCreate следующий код.
package ru.rustore.unitysdk;
import android.app.Application;
import ru.rustore.unitysdk.remoteconfigclient.RuStoreUnityRemoteConfigClient;
import ru.rustore.unitysdk.remoteconfigclient.model.RemoteConfigClientParameters;
import ru.rustore.unitysdk.remoteconfigclient.model.UnityRemoteConfigClientEventListener;
public class RuStoreRemoteConfigApplication extends Application {
public final String APP_ID = "a83c91d3-21b4-4891-841e-0ed0fc39a562";
public final int UPDATE_TIME = 15;
public final String UPDATE_BEHAVIOUR = "Default";
public RemoteConfigClientParameters parameters = null;
public UnityRemoteConfigClientEventListener listener = null;
@Override
public void onCreate() {
super.onCreate();
RuStoreUnityRemoteConfigClient.INSTANCE.init(APP_ID, UPDATE_TIME, UPDATE_BEHAVIOUR, parameters, listener, getApplicationContext());
}
}
Для замены класса Application на RuStoreRemoteConfigApplication добавьте атрибут android:name к тегу application в файле манифеста вашего проекта Assets/Plugins/Android/AndroidManifest.xml.
Пример AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<application android:name="ru.rustore.unitysdk.RuStoreRemoteConfigApplication">
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
</manifest>
Инициализация плагина
Для доступа к методам SDK из C# выполните инициализацию плагина, используя метод Init.
Вызов метода Init
IRemoteConfigClientEventListener eventListener = /* Реализация интерфейса */;
RuStoreRemoteConfigClient.Instance.Init(eventListener);
Для работы в режиме UpdateBehaviour.Actual инициализация может быть выполнена без создания расширения класса Application. При этом параметр APP_ID должен быть передан из C#.
Вызов метода Init
IRemoteConfigClientEventListener eventListener = /* Реализация интерфейса */;
var settings = new RuStoreRemoteConfigClientSettings() {
appId = APP_ID,
account = ACCOUNT,
language = LANGUAGE
};
RuStoreRemoteConfigClient.Instance.Init(settings, eventListener);
Начните изучение документации библиотеки с методов класса RuStoreRemoteConfigClient. Или воспользуйтесь руководством онлайн.
Техническая поддержка
Дополнительная помощь и инструкции доступны в документации RuStore и по электронной почте support@rustore.ru.
Условия распространения
Данное программное обеспечение, включая исходные коды, бинарные библиотеки и другие файлы, распространяется под лицензией MIT. Информация о лицензировании доступна в документе MIT-LICENSE.