Android 15 & iOS 18 Migration Guide
Migrate to Android 15
According to the latest Google Play requirements for app releases, targetSdkVersion
must be API 34 (Android 14) or later from August 2024, and API 35 (Android 15) or later from 2025.
In order to meet compliance requirements in the long-term and ensure that your app can be released, Player Network SDK V1.28 has upgraded targetSdkVersion
to 35. Developers should complete the necessary adjustments to their build environments.
Player Network SDK has completed the upgrade to Android 15 over 3 versions:
- V1.25.00: Added compatibility for app changes specific to Android 15. Support for targetSdkVersion 35, Android 16KB not implemented.
- V1.28.00: Added support for targetSdkVersion 35 and other related changes. Support for Android 16KB not implemented.
- V1.29.00: Added support for Android 16KB, SDK is fully compatible with Android 15.
For a comprehensive overview of the changes, see Android 15 Features and Changes.
Changes in the project environment
Notable changes that games should take note of are as follows:
Upgrade targetSdkVersion
- Unity
- Unreal Engine
Upgrade Unity to the following LTS versions or later:
- 2021.3.45f1
- 2022.3.60f1
- 6000.0.45f1
Upgrade to Android API level 35 by updating the targetSdkVersion
in your Unreal Engine project:
-
Navigate to the Config folder in your Unreal Engine project directory.
-
Open the
DefaultEngine.ini
file. In theDefaultEngine.ini
file, add or modify the following lines to set thetargetSdkVersion
:TargetSDKVersion=35
SDKAPILevelOverride=android-35 -
After making the changes, save and close the
DefaultEngine.ini
file.
Upgrade Android Gradle Plugin (AGP)
- Unity
- Unreal Engine
Upgrade Gradle Wrapper version
-
Find the Gradle installed with Unity option in the Editor menu Unity > Settings > External Tools and uncheck it, then select the path of
gradle-8.7-bin
in the Gradle path. -
Modify the environment variable
GRADLE_HOME
to the path of Gradle 8.7 version:# sh
export GRADLE_HOME=/Users/***/.gradle/wrapper/dists/gradle-8.7-bin/****/gradle-8.7
export PATH=${PATH}:${GRADLE_HOME}/bin
Modify AGP version dependency
After upgrading to Player Network SDK V1.28, INTLSDK/Source/INTLCore/Libs/Android/INTLCore_APL.xml
has already upgraded the AGP to version 8.6.0, so no modification is required.
Check the version of "com.android.tools.build:gradle:x.x.x"
in the Assets/Plugins/Android/baseProjectTemplate.gradle
file. If the version is below 8.6.0, you will need to update it to 8.6.0.
Follow the below procedures to upgrade AGP for your project:
Upgrade Gradle Wrapper version
-
Download the gradle-8.7-bin.zip file from the official website and extract it to your chosen directory.
-
Set the path of the
GRADLE_HOME
environment variable to the extract location ofgradle-8.7-bin
.# sh
export GRADLE_HOME=/Users/***/.gradle/wrapper/dists/gradle-8.7-bin/****/gradle-8.7
export PATH=${PATH}:${GRADLE_HOME}/bin -
Modify the
/Engine/Build/Android/Java/gradle/gradle/wrapper/gradle-wrapper.properties
file in the engine directory, changingdistributionUrl
to the URL for Gradle 8.7:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
Modify AGP dependency version
If you have already upgraded to Player Network SDK V1.28, the AGP version in INTLSDK/Source/INTLCore/Libs/Android/INTLCore_APL.xml
has already been updated to 8.6.0, and does not need to be modified.
To add or modify the buildscript block in an APL (Android Project Library) file:
<buildscriptGradleAdditions>
<insert>
dependencies {
classpath 'com.android.tools.build:gradle:8.6.0'
}
</insert>
</buildscriptGradleAdditions>
Upgrade Java version
- Unity
- Unreal Engine
The default Java version for Unity is recommended to be used.
AGP 8.6.0 requires Java 17. If your current Java version is below 17, you'll need to download and install JDK 17 and update your environment variables accordingly:
# sh
# set JAVA_HOME to your jdk 17 installation path.
export JAVA_HOME=/Users/***/Library/Java/JavaVirtualMachines/microsoft-17.jdk/Contents/Home
export PATH=${PATH}:${JAVA_HOME}/bin
Support for 16KB Page Size
Since Android 15, AOSP supports devices configured with a 16KB memory page size. If your app utilizes any NDK libraries, whether directly or indirectly through an SDK, you will need to rebuild your app to ensure it runs on these 16KB devices. As manufacturers continue to produce devices with larger physical memory (RAM), many will adopt a 16KB (or larger) memory page size to optimize device performance. Adding support for 16KB memory page sizes allows your app to run on these devices and benefit from the associated performance improvements. Without recompilation, apps might not function properly on devices supporting 16KB in future Android versions.
For more information, see Support 16 KB page sizes.
Engine support is required for 16KB memory page size compatibility in games, with supported versions for mainstream engines as follows:
- Unity: Supported, see [INFO] Unity Engine support for 16 KB memory page sizes (Android 15+) for details.
- Unreal Engine: Supported in UE 5.6, and UE 4.27 from the 4.27-plus branch, see Support for 16kb memory page size on Android for details.
After compiling the APK, projects can use Google's tool to verify if 16KB page size support requirements has been satisfied in all SO libraries.
Currently, real-device testing for 16KB page size is only supported in the following devices. The 16KB configuration has to be enabled first from Developer Options (requires OEM unlock, phone data reset, and restarting):
- Pixel 8, 8 Pro, and 8a (with Android 15 QPR1 or higher)
- Pixel 9, 9 Pro, and 9 Pro XL (with Android 15 QPR2 Beta 2 or higher)
Validation
Verify basic information
When unpacking an APK, check the following fields in the AndroidManifest.xml
file to ensure they meet expectations:
-
Review the
package
attribute in the<manifest>
tag to confirm that the package name is correct. -
Examine the
platformBuildVersionCode
attribute in the<manifest>
tag, which should be set to 35. -
Look at the
android:minSdkVersion
attribute within the<uses-sdk>
tag. This should reflect the minimum Android API level supported by your game.Relationship between Android API Levels and Android Versions: https://apilevels.com/
-
Check the
android:targetSdkVersion
attribute within the<uses-sdk>
tag, which is expected to be 35.
AndroidManifest.xml
example:
<!---AndroidManifest-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
android:compileSdkVersion="35"
android:compileSdkVersionCodename="14"
package="your.package.name"
platformBuildVersionCode="35"
platformBuildVersionName="14">
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="35" />
......
Compatibility testing
Conduct compatibility testing using the product, with a focus on its performance on Android 15.
Migrate to iOS 18
Starting April 2025, all iOS and iPadOS apps uploaded to App Store Connect must be built using the iOS 18 SDK.
The Player Network SDK plugin is compiled with XCode 15 and supports XCode 16 (iOS 18). There are no other specific issues to consider for this adaptation.
Validation
Verify basic information
To verify the iOS build, unpack the IPA file and check the DTSDKName
field in the info.plist
to ensure it corresponds to the version used. For instance, if the build was compiled with XCode 15, the field should show iphoneos17.*
. If compiled with XCode 16, it should show iphoneos18.0
.
Example of info.plist
:
...
<key>DTSDKName</key>
<string>iphoneos17.*</string>
...
Compatibility testing
Conduct compatibility testing using the product, with a focus on its performance on iOS 18.