Skip to main content

Upgrade to V1.17

The SDK 1.17 has integrated the LI PASS SDK to support LI PASS features. This update has also introduced several changes to support Unity 2022 and Unreal Engine 5.1. Furthermore, the file structure has been streamlined, simplifying future upgrades for games.

For a full list of updates, see the V1.17 Release Note.

What's the impact

This version adapts to Unity 2022 and Unreal Engine 5.1, and the INTLConfig plugin folder now holds all of the fundamental SDK configurations. For UE 5.1, each plugin folder independently manages its own resources and configurations. For Unity 2022, each plugin's Android library is in charge of managing its particular plugin-specific Android platform configurations. This arrangement streamlines the SDK folder structure and simplifies the process for games to upgrade to future SDK versions.

Consequently, games planning to upgrade their engines or aiming to take advantage of the simplified upgrade process for incorporating future SDK updates that offer new features or bug fixes, should consider this SDK upgrade. Additionally, this version integrates the LI PASS SDK, supporting all LI PASS features, making it an essential upgrade for games wishing to utilize these features.

What's changing

The file structure has been reorganized:

  • A new INTLConfig folder has been created to hold all basic configurations of the SDK, including the Encrypt folder, the INTLConfig.ini configuration file, and the INTL{Plugin}{Platform}PostProcess.cs scripts.
  • A new Plugins/Android/Gradle folder was created to store general Gradle build instructions for Android. The Gradle build instructions for each plugin have been split and moved to Plugins/Android/INTL{Plugin}.androidlib.

As a result, the configurations have also been adjusted:

  • The SDK configurations are stored in the INTLConfig.inifile, regardless of the platform the project is running on, and include multi-store package configurations.
  • Player Network SDK build instructions are stored in Plugins/Android/Gradle/INTLCore.mainTemplate.gradle.
  • Plugin-specific build instructions are split into Plugins/Android/INTL{Plugin}.androidlib.

Encryption files

Before the upgrade

There was not an Encrypt folder holding files related to the encryption function, the files are together with other editor configuration files inside the Editor folder as showing in the following image:

Image: Upgrade117/19

After the upgrade

All files related to the encryption function are moved to the INTLSDK/Scripts/INTLConfig/Editor folder as shown in the following image:

Image: Upgrade117/18

Configuration files

Before the upgrade

The path of the configuration file varies depending on the platform:

  • Android: Assets/Plugins/Android/assets/INTLConfig.ini
  • iOS : Assets/Plugins/iOS/INTLSDK/INTLCore/INTLSDK.bundle/INTLConfig.ini
  • Windows & PS5: Assets/Plugins/x86_64/INTLConfig.ini

After the upgrade

The path of the configuration file is consistent across all platforms: INTLSDK/Scripts/INTLConfig/Editor/Resources/INTLConfig.ini

Android Gradle files

The Gradle project files differ for versions before and after Unity 2019. Therefore, the changes are described separately for Unity 2018 and Unity 2019 and later versions.

Unity 2018 and ealier

Before the upgrade

All build instructions are specified in the Assets/Plugins/Android/mainTemplate.gradle file.

After the upgrade

The Plugins/Android/mainTemplate.gradle file contains general build instructions, and plugin-related instructions are split into each INTL{Plugin}.mainTemplate.gradle file.

Unity 2019 and later

Before the upgrade

Gradle project files for all build instructions:

  • Plugins/Android/mainTemplate.gradle
  • Plugins/Android/baseProjectTemplate.gradle
  • Plugins/Android/launcherTemplate.gradle
After the upgrade

Gradle project files for:

  • General build instructions:
    • Plugins/Android/mainTemplate.gradle
    • Plugins/Android/baseProjectTemplate.gradle
    • Plugins/Android/launcherTemplate.gradle
  • Plugin-specific build instructions:
    • Plugins/Android/Gradle/INTL{Plugin}.mainTemplate.gradle
    • Plugins/Android/Gradle/INTL{Plugin}.baseProjectTemplate.gradle
    • Plugins/Android/Gradle/INTL{Plugin}.launcherTemplate.gradle

iOS information property list

No changes.

C# scripts

Before the upgrade

The {XXX}PostProcess.cs scripts for all plugins are stored under the INTLSDK/Editor directory as shown in the following image:

Image: Upgrade117/23

After the upgrade

The scripts are now divided by plugin. The new path is INTLSDK/Scripts/INTL{Plugin}/Editor/INTL{Plugin}XXXPostProcess.cs as shown in the following image:

Image: Upgrade117/22

Action required

  1. Follow the instructions in Download the SDK to download Player Network SDK V1.17 and unzip it, the folder structure is as follows:

    Image: Unity Plugin Directory

  2. Replace the INTLSDK/Scripts/INTLConfig/Editor/Resources/INTLConfig.ini configuration file with the one from the game project, which contains the correct game configurations.

    The configuration file from the game project which follows the folder structure of the previous version can be found at:

    • Android: Assets/Plugins/Android/assets/INTLConfig.ini
    • iOS: Assets/Plugins/iOS/INTLSDK/INTLCore/INTLSDK.bundle/INTLConfig.ini
    • Windows: Assets/Plugins/x86_64/INTLConfig.ini
  3. For Android games, update the Gradle configuration file according to the version of the Unity engine.

    Unity 2018 and ealier versions
    1. Replace the placeholder configurations in the Plugins/Android/Gradle/INTLCore.mainTemplate.gradle file with the configurations from the Assets/Plugins/Android/mainTemplate.gradle file in your game project.

      Image: Upgrade117/3

    2. Merge the Assets/Plugins/Android/mainTemplate.gradle file from the game project into the Plugins/Android/mainTemplate.gradle file from Player Network SDK V1.17.

      The Player Network SDK configurations must be preserved.

      Image: Upgrade117/5

    Unity 2019 and later versions
    1. Replace the placeholder configurations in the Plugins/Android/Gradle/INTLCore.launcherTemplate.gradle file with the configurations from the Assets/Plugins/Android/launcherTemplate.gradle file in your game project.

      Image: Upgrade117/8

    2. Merge the following files from the game project into the corresponding ones from Player Network SDK V1.17:

      • Merge Assets/Plugins/Android/mainTemplate.gradle into Plugins/Android/Gradle/INTLCore.mainTemplate.gradle;
      • Merge Assets/Plugins/Android/baseProjectTemplate.gradle into Plugins/Android/Gradle/INTLCore.baseProjectTemplate.gradle;
      • Merge Assets/Plugins/Android/launcherTemplate.gradle into Plugins/Android/Gradle/INTLCore.launcherTemplate.gradle.

      The Player Network SDK configurations must be preserved.

      Image: Upgrade117/10

  4. Remove the Assets/INTLSDK folder from the game project, and replace it with the INTLSDK folder from Player Network SDK V1.17.

  5. Remove the Player Network SDK related files from the Assets/Plugins folder.

    Example of files that need to be removed:

    Image: Upgrade117/13

  6. Merge the Plugins folder from Player Network SDK V1.17 into the Assets/Plugins folder of the game project.

What you must know

  1. To avoid Android com.google.android.play.core library dependency conflicts, follow the instructions in Migration from the Play Core Java and Kotlin Library to migrate to the new libraries.

    Image: FAQ1

  2. The ext field for Android games developed using Unity is moved to INTLCore.mainTemplate.Gradle, which contains the apply from: "$rootDir/INTL.Gradle/INTLCore.mainTemplate.gradle" code. In this way, the ext field is still valid. However, you should only use common inside the ext field as commonVersions is no longer valid.

    Image: FAQ3

  3. The compileSdkVersion, buildToolsVersion, minSdkVersion, and targetSdkVersion have been upgraded inside the ext.commonfield to meet Google Play requirements. If you do not wish to release your game through Google Play, you can revert to the previous versions.

  4. There are two new versions specified in the ext.common field: ndkVersion and cmakeVersion. Your game can remove them if they are not required.

  5. For minSdkVersion 23 and above, the new fields in the overrideLibrary of the AndroidManifest.xml file are non-essential. The SDK added these fields due to a default minSdkVersion of 16, but they won't impact the game even if left unused.

    Image: FAQ6

  6. For targetSdkVersion : 33, the system permissions that you must request changes.

    • To enable push notifications, add <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> in the manifest.

    • Replace android.permission.READ_EXTERNAL_STORAGE and android.permission.WRITE_EXTERNAL_STORAGE with the following permissions:

      <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
      <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
      <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
  7. To update dependencies in Android Gradle, change compile fileTree(dir:'libs',include:['*.jar']) to implementation fileTree(dir:'libs',include:['*.jar']), and copy the Gradle changes marked by arrows in the following image to the corresponding file.

    Image: FAQ5