Search Unity

Earlier this week Google announced important changes to the Google Play requirements: target API level 26 (Android 8.0 Oreo) or higher will be required for new submissions starting August 2018, and all submissions starting November 2018. 64-bit support becomes mandatory for submissions in August 2019. In this blog post we would like to help you prepare for these changes and cover our plans to support the requirements.

We suggest you set Target API Level in the Player Settings to “Automatic”. This means the build process will set targetSdkVersion in your manifest to the latest SDK Platform you have installed within your Android SDK. Given that you have SDK Platform 26 (Android 8.0 Oreo) installed, you will fulfil the new requirements. To make it even easier for you, we will show you an SDK update prompt in the Editor if it’s missing, and you can let Unity update the Android SDK for you. After that you’re fully prepared for the new requirements.

If you want to control the target API level yourself, you can select the desired value in the Target API Level dropdown. We will be adding the latest API levels to the list for all currently supported Unity versions shortly. In any case, please make sure to thoroughly test your application after updating the target API level.

We are also happy to share that our native 64-bit support for Android is in its final development stage and is being tested internally. We aim to make it public in Unity 2018.2 as a preview and expecting it to mature in time for full release in 2018.3 (which is expected to ship in Q4 2018), well before the requirement is enforced by Google Play.

Initially, Unity Android ARM 64-bit support will only support IL2CPP scripting backend. IL2CPP technology offers C++ class performance for your scripts and can make your applications start-up time twice as fast. If you are publishing your games to Google Play and still using Mono scripting backend, we strongly recommend you consider moving to IL2CPP instead.

Mono on Android is based on Just In Time (JIT) compilation, which means code gets converted from .NET IL code to machine code right on the Android device, while IL2CPP is based on Ahead Of Time (AOT) compilation, when all the code is converted to machine code (through intermediate form of C++ code) on developer’s machine. AOT allows you to have faster startup times and better overall performance, because most of the expensive optimizations are done on a desktop machine, rather than on a mobile device. More information on IL2CPP can be found on the dedicated Unity Manual page.

If you’re using custom native plugins, you should modify your build scripts to include ARM64 architecture. If you rely on third party native plugins, reach out to your plugin provider for ARM64 support.

We’re happy to discuss this news on our dedicated forum thread.

11 replies on “Meeting Google Play requirements in the future”

Will the Cloud build system handle building the matrix of systems we will have to support nowadays? 32 / 64 / ARM / x86. It would be nice to have a blog post on Cloud build.

hi Hury Habets, is unity doing anything specific for android ‘GO’, SDK Platform 27 (oreo 8.1)? As per google it’s ‘lite’ version of Android, for devices with 512MB/1GB ram.

Thanks for the update. Can you comment on the size increase for including the 64-bit libraries in the APK?
We are currently building 2 different APKs – x86 and ARM. Maybe we can further split this into ARM32 and ARM64 so that the APK size won’t be affected.

Our AVPro Video plugin already comes with arm64 support. We look forward to actually being able to test it though :)

Fortunately, the IL2CPP stuff seems to be much more mature now since the last time this happened on the Apple side.
That was a complete mess

Comments are closed.