Домашняя страница


RU EN
🏠 Домой ❮ Назад

Unity-плагин RuStore для работы с облачным сервисом конфигурации приложения

RuStore Remote Config это облачный сервис, который позволяет изменять поведение и внешний вид вашего приложения, не требуя от пользователей загрузки обновления приложения. SDK инкапсулирует в себе запрос конфигурации с сервера, кэширование, фоновое обновление. Поддерживаются версии Unity 2022.3.37f1+ (требуется Gradle выше 7.3), Unity 6000+.

Подключение в проект

Из сетевого расположения (рекомендуется)

Пакеты RuStore публикуются в npm-registry и подключаются к проекту через Package Manager без ручного скачивания архивов.

  1. Откройте настройки: Edit → Project Settings → Package Manager.
  2. В разделе Scoped Registries нажмите + и заполните поля:
    • NameRuStore Nexus.
    • URLhttps://nexus-external.vkteam.ru/repository/npm-unity-rustore-exposed/.
    • Scopesru.rustore.
  3. Откройте Window → Package Manager — в списке источников появится реестр RuStore Nexus.
  4. Выберите RuStore Nexus и установите пакет ru.rustore.remoteconfig кнопкой Install. Зависимость ru.rustore.core установится автоматически.

Из локального расположения

Установка через Package Manager

  1. Для подключения скачайте со страницы релизов пакеты:
    • ru.rustore.core-version.tgz.
    • ru.rustore.remoteconfig-version.tgz.
  2. Импортируйте пакеты в проект через Package Manager (Window → Package Manager → + → Add package from tarball…).

*Установка через .unitypackage

  1. Скачайте файл RuStoreUnityRemoteConfigSDK-version.unitypackage со страницы релизов.
  2. Импортируйте его в проект (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.