Skip to main content

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.

note

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

Upgrade Unity to the following LTS versions or later:

  • 2021.3.45f1
  • 2022.3.60f1
  • 6000.0.45f1

Upgrade Android Gradle Plugin (AGP)

Upgrade Gradle Wrapper version
  1. 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.

  2. 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
note

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.

Upgrade Java version

The default Java version for Unity is recommended to be used.

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:

note

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.

Appendix