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
- Unity
- Unreal Engine
The file structure has been reorganized:
- A new
INTLConfigfolder has been created to hold all basic configurations of the SDK, including theEncryptfolder, theINTLConfig.iniconfiguration file, and theINTL{Plugin}{Platform}PostProcess.csscripts. - A new
Plugins/Android/Gradlefolder was created to store general Gradle build instructions for Android. The Gradle build instructions for each plugin have been split and moved toPlugins/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.
The name of the Player Network SDK folder has been changed from INTLSDKPlugin to INTLSDK, and the following changes have been implemented:
- The
INTLSDKPlugin/Source/INTLSDKPluginfolder has been split into several plugin folders. Among these, theINTLCore,INTLConfig, andINTLFoundationfolders are always included. Any other plugin folders will appear if you selected them during the download. - All basic confiugrations of Player Network SDK are moved to the new
INTLConfigfolder, such as theINTLConfig.iniconfiguration file, the encryption feature of Player Network SDK, the Android Gradle configuration file, the iOS information property list file, and the UPL XML file used to modify iOS property list file. - The
INTLSDKPlugin/Source/INTLSDKPlugin/INTLPlugin.Build.csfile has been split so that each plugin folder contains its own build script fileINTLSDK/Source/INTL{Plugin}/INTL{Plugin}.Build.cs. For example,INTLSDK/Source/INTLConfig/INTLConfig.Build.cs.
Encryption files
- Unity
- Unreal Engine
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:

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:

Before the upgrade
There was not an Encrypt folder holding files related to the encryption function, the files are scattered inside the INTLSDKPlugin folder, and the configuration file is EncryptConfig.ini.
After the upgrade
The INTLSDK/Source/INTLConfig/Encrypt folder holds the executable files of the encryption feature, and the configuration file is DefaultEngine.ini.
Configuration files
- Unity
- Unreal Engine
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
Before the upgrade
The path of the configuration file varies depending on the platform:
- Android:
INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/Android/assets/INTLConfig.ini - iOS :
INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/iOS/INTLCore/INTLSDK.bundle/INTLConfig.ini - Windows & PS5:
INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/resources/INTLConfig.ini
After the upgrade
The path of the configuration file is consistent across all platforms:
INTLSDK/Source/INTLConfig/Configs/Resources/INTLConfig.ini
Android Gradle files
- Unity
- Unreal Engine
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.gradlePlugins/Android/baseProjectTemplate.gradlePlugins/Android/launcherTemplate.gradle
After the upgrade
Gradle project files for:
- General build instructions:
Plugins/Android/mainTemplate.gradlePlugins/Android/baseProjectTemplate.gradlePlugins/Android/launcherTemplate.gradle
- Plugin-specific build instructions:
Plugins/Android/Gradle/INTL{Plugin}.mainTemplate.gradlePlugins/Android/Gradle/INTL{Plugin}.baseProjectTemplate.gradlePlugins/Android/Gradle/INTL{Plugin}.launcherTemplate.gradle
Before the upgrade
All configurations are specified in the INTLSDKPlugin/INTLSDK/Android/INTLCore_UPL.xml file.
After the upgrade
Basic configurations are stored in the INTLSDK/Source/INTLConfig/Configs/Android/INTLConfig_APL.xml file, and plugin-specific configurations are stored in the INTLSDK/Source/INTL{Module}/Libs/Android/INTL{Module}_APL.xml file.
iOS information property list
- Unity
- Unreal Engine
C# scripts
- Unity
- Unreal Engine
Before the upgrade
The {XXX}PostProcess.cs scripts for all plugins are stored under the INTLSDK/Editor directory as shown in the following image:

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:

Action required
- Unity
- Unreal Engine
-
Follow the instructions in Download the SDK to download Player Network SDK V1.17 and unzip it, the folder structure is as follows:

-
Replace the
INTLSDK/Scripts/INTLConfig/Editor/Resources/INTLConfig.iniconfiguration 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
- Android:
-
For Android games, update the Gradle configuration file according to the version of the Unity engine.
Unity 2018 and ealier versions
-
Replace the placeholder configurations in the
Plugins/Android/Gradle/INTLCore.mainTemplate.gradlefile with the configurations from theAssets/Plugins/Android/mainTemplate.gradlefile in your game project.
-
Merge the
Assets/Plugins/Android/mainTemplate.gradlefile from the game project into thePlugins/Android/mainTemplate.gradlefile from Player Network SDK V1.17.The Player Network SDK configurations must be preserved.

Unity 2019 and later versions
-
Replace the placeholder configurations in the
Plugins/Android/Gradle/INTLCore.launcherTemplate.gradlefile with the configurations from theAssets/Plugins/Android/launcherTemplate.gradlefile in your game project.
-
Merge the following files from the game project into the corresponding ones from Player Network SDK V1.17:
- Merge
Assets/Plugins/Android/mainTemplate.gradleintoPlugins/Android/Gradle/INTLCore.mainTemplate.gradle; - Merge
Assets/Plugins/Android/baseProjectTemplate.gradleintoPlugins/Android/Gradle/INTLCore.baseProjectTemplate.gradle; - Merge
Assets/Plugins/Android/launcherTemplate.gradleintoPlugins/Android/Gradle/INTLCore.launcherTemplate.gradle.
The Player Network SDK configurations must be preserved.

- Merge
-
-
Remove the
Assets/INTLSDKfolder from the game project, and replace it with theINTLSDKfolder from Player Network SDK V1.17. -
Remove the Player Network SDK related files from the
Assets/Pluginsfolder.Example of files that need to be removed:

-
Merge the
Pluginsfolder from Player Network SDK V1.17 into theAssets/Pluginsfolder of the game project.
-
Follow the instructions in Download the SDK to download Player Network SDK V1.17 and unzip it, the folder structure is as follows:

-
Replace the
INTLSDK/Source/INTLConfig/Configs/Resources/INTLConfig.iniconfiguration 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:
Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/Android/assets/INTLConfig.ini - iOS:
Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/iOS/INTLCore/INTLSDK.bundle/INTLConfig.ini - Windows:
Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/resources/INTLConfig.ini
- Android:
-
For Android games, replace the placeholder configurations in the
INTLSDK/Source/INTLConfig/Configs/Android/INTLConfig_APL.xmlfile with the configurations from theINTLCore_UPL.xmlfile in the game project.
-
For iOS games, replace the placeholder configurations in the
INTLSDK/Source/INTLPlugin/Libs/iOS/INTLPlugin_UPL.xmlfile with the configurations from theINTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/iOS/iOS_UPL.xmlfile in the game project. -
Backup a copy of the
/Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/Android/googleservices.jsonand/Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/IOS/iOS/GoogleService-Info.plistfiles. -
Remove the
Plugins/INTLEncryptandPlugins/INTLSDKPluginfolders from the game project. -
Place the V1.17
INTLSDKfolder with configurations updated to the configurations from the game project to the game project'sPluginsfolder. -
Place the backup files from step 5 to
/Plugins/INTLSDK/Source/INTLFirebase/Libs/Android/googleservices.jsonand/Plugins/INTLSDK/Source/INTLFirebase/Libs/iOS/GoogleService-Info.plist. -
Open the
{Project}.Build.csfile, and update thePrivateDependencyModuleNames.AddRange(new string[] { "INTLPlugin" });section to the following code:PrivateDependencyModuleNames.AddRange(new string[] {
"INTLCore",
"INTLFoundation"
});
What you must know
-
To avoid Android
com.google.android.play.corelibrary dependency conflicts, follow the instructions in Migration from the Play Core Java and Kotlin Library to migrate to the new libraries.
-
The
extfield for Android games developed using Unity is moved toINTLCore.mainTemplate.Gradle, which contains theapply from: "$rootDir/INTL.Gradle/INTLCore.mainTemplate.gradle"code. In this way, theextfield is still valid. However, you should only usecommoninside theextfield ascommonVersionsis no longer valid.
-
The
compileSdkVersion,buildToolsVersion,minSdkVersion, andtargetSdkVersionhave been upgraded inside theext.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. -
There are two new versions specified in the
ext.commonfield:ndkVersionandcmakeVersion. Your game can remove them if they are not required. -
For
minSdkVersion 23and above, the new fields in theoverrideLibraryof theAndroidManifest.xmlfile are non-essential. The SDK added these fields due to a defaultminSdkVersionof 16, but they won't impact the game even if left unused.
-
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_STORAGEandandroid.permission.WRITE_EXTERNAL_STORAGEwith 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" />
-
-
To update dependencies in Android Gradle, change
compile fileTree(dir:'libs',include:['*.jar'])toimplementation fileTree(dir:'libs',include:['*.jar']), and copy the Gradle changes marked by arrows in the following image to the corresponding file.