Since 31 August 2026, new apps and updates must target Android 16 (API 36), with an extension to 1 November 2026 available on request; existing apps must target at least API 35 to stay visible to new users on newer devices (Wear OS and Automotive need 35, TV and XR 34). BookNest's targetSdk = 36 meets it (SDK Levels). Unlike a Capacitor 243,123 or Expo 6,418 app, whose template sets the target, a native team raises it yearly, and each raise opts the app into that Android version's behavior changes: re-test before you change the number.
Play App Signing's 16 KB page-size check applies to a native Kotlin app too, even one with no C++ of its own. BookNest's four .so files, each for four ABIs, come from AndroidX 234 graphics, DataStore 234 and CameraX 234 :
zipalign -c -P 16 -v 4 app/build/outputs/apk/release/app-release.apk | grep -E "arm64|Verification"2850816 lib/arm64-v8a/libandroidx.graphics.path.so (OK) 2867200 lib/arm64-v8a/libdatastore_shared_counter.so (OK) 2883584 lib/arm64-v8a/libimage_processing_util_jni.so (OK) 2916352 lib/arm64-v8a/libsurface_util_jni.so (OK) Verification successful
All sixteen are aligned (the arm64 four are shown); a library that fails must be updated, not patched.
Three declarations follow from features this chapter added. The Data safety form covers what BookNest's code and libraries send off the device (Google Play's Data Safety Form walks through the method). The foreground service declaration for dataSync (Play Background Rules) needs a description and a short video of the offline-pack download. And permissions need a purpose: the release lists INTERNET, CAMERA, both location permissions, POST_NOTIFICATIONS, USE_BIOMETRIC, FOREGROUND_SERVICE_DATA_SYNC and five more merged from libraries (WAKE_LOCK, ACCESS_NETWORK_STATE, RECEIVE_BOOT_COMPLETED and FOREGROUND_SERVICE from WorkManager 234 , and the deprecated USE_FINGERPRINT from a transitive androidx.biometric 1.1.0), so check aapt2 dump permissions after every library upgrade. BookNest needs none of the permissions Play restricts hardest, such as READ_MEDIA_IMAGES, USE_EXACT_ALARM and QUERY_ALL_PACKAGES.