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
INTLConfig
folder has been created to hold all basic configurations of the SDK, including theEncrypt
folder, theINTLConfig.ini
configuration file, and theINTL{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 toPlugins/Android/INTL{Plugin}.androidlib
.
As a result, the configurations have also been adjusted:
- The SDK configurations are stored in the
INTLConfig.ini
file, 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/INTLSDKPlugin
folder has been split into several plugin folders. Among these, theINTLCore
,INTLConfig
, andINTLFoundation
folders 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
INTLConfig
folder, such as theINTLConfig.ini
configuration 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.cs
file 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.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
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.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
- 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.gradle
file with the configurations from theAssets/Plugins/Android/mainTemplate.gradle
file in your game project.Merge the
Assets/Plugins/Android/mainTemplate.gradle
file from the game project into thePlugins/Android/mainTemplate.gradle
file 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.gradle
file with the configurations from theAssets/Plugins/Android/launcherTemplate.gradle
file 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.gradle
intoPlugins/Android/Gradle/INTLCore.mainTemplate.gradle
; - Merge
Assets/Plugins/Android/baseProjectTemplate.gradle
intoPlugins/Android/Gradle/INTLCore.baseProjectTemplate.gradle
; - Merge
Assets/Plugins/Android/launcherTemplate.gradle
intoPlugins/Android/Gradle/INTLCore.launcherTemplate.gradle
.
The Player Network SDK configurations must be preserved.
- Merge
Remove the
Assets/INTLSDK
folder from the game project, and replace it with theINTLSDK
folder from Player Network SDK V1.17.Remove the Player Network SDK related files from the
Assets/Plugins
folder.Example of files that need to be removed:
Merge the
Plugins
folder from Player Network SDK V1.17 into theAssets/Plugins
folder 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.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:
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.xml
file with the configurations from theINTLCore_UPL.xml
file in the game project.For iOS games, replace the placeholder configurations in the
INTLSDK/Source/INTLPlugin/Libs/iOS/INTLPlugin_UPL.xml
file with the configurations from theINTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/iOS/iOS_UPL.xml
file in the game project.Backup a copy of the
/Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/INTLSDK/Android/googleservices.json
and/Plugins/INTLSDKPlugin/Source/INTLSDKPlugin/IOS/iOS/GoogleService-Info.plist
files.Remove the
Plugins/INTLEncrypt
andPlugins/INTLSDKPlugin
folders from the game project.Place the V1.17
INTLSDK
folder with configurations updated to the configurations from the game project to the game project'sPlugins
folder.Place the backup files from step 5 to
/Plugins/INTLSDK/Source/INTLFirebase/Libs/Android/googleservices.json
and/Plugins/INTLSDK/Source/INTLFirebase/Libs/iOS/GoogleService-Info.plist
.Open the
{Project}.Build.cs
file, 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.core
library dependency conflicts, follow the instructions in Migration from the Play Core Java and Kotlin Library to migrate to the new libraries.The
ext
field 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, theext
field is still valid. However, you should only usecommon
inside theext
field ascommonVersions
is no longer valid.The
compileSdkVersion
,buildToolsVersion
,minSdkVersion
, andtargetSdkVersion
have been upgraded inside theext.common
field 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.common
field:ndkVersion
andcmakeVersion
. Your game can remove them if they are not required.For
minSdkVersion 23
and above, the new fields in theoverrideLibrary
of theAndroidManifest.xml
file are non-essential. The SDK added these fields due to a defaultminSdkVersion
of 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_STORAGE
andandroid.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" />
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.