I am using Embarcadero Delphi 10.4 for Android mobile development. I have installed Android SDK 25.2.5 32 and 64 bit installed under Target Platforms. I think, that is the default SDK for Delphi 10.4, I have not removed the default SDK and installed something different. That is fine.
Now Google Play Store requires every new app to target Android API level 31 and I am considering installing Android SDK 31.* inside my Delphi application. This can be quite hard, but nonetheless I am trying to follow Target Android API 29 on Delphi 10.3.3 and links provided there.
But before doing this I am observing strange thing. I have SDK 25 installed and appartenly I am doing build, compile against it. I have default AndroidManifest.template.xml in my source folder (and I have double checked by deleting it, that it is the default one) which has placeholders for the Android versions:
<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
Nonetheless, the final apk or aab packages contain completely different version numbers in their AndroidManifest.xml (as can be viewed by Android Studio 'Build - Analyze APK'):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..."
platformBuildVersionCode="29"
platformBuildVersionName="10"
android:compileSdkVersion="29"
android:compileSdkVersionCodename="10"
android:installLocation="internalOnly"
android:versionCode="19"
android:versionName="1.0.19" >
<uses-sdk
android:minSdkVersion="23"
android:targetSdkVersion="29" />
I am expecting that compile and target SDK versions would be 25, but they are 29 by some unknown reason!
So - if something inside Delphi Studio writes different compile and target SDK versions in the final AndroidManifest.xml, then there is no sense for me to add additionl Android SDK to the installed Target Platforms of my Delphi Studio.
So - why the SDK version of the Target Platform is different from the compile/target API level/Sdk version that is written into final AndroidManifest.xml?