MMY version check: name 2.2.5 & code 225
The file carries two version numbers, and Android only reads one of them. Knowing which is which explains most failed updates.
mmy.2rwkt.apk20,954,528b699d1480b19ec1fb28974c90df518bc7ff989e0900ec9fcc4beef7c353e6421com.mmyuionn.opp022.2.522524 (Android 7.0)arm64-v8a onlyCocos 3.8.2The label and the code
versionName 2.2.5 is text. It is what the app shows you and what a listing page prints. versionCode 225 is an integer. It is what the package manager compares. Nothing requires the two to correspond, and plenty of apps ship a label that does not encode the code.
Both files measured on 10 November 2026 carry the same pair: label 2.2.5, code 225. The agreement is a fact about these two files, not a rule you can rely on for the next build.
How Android decides an update
Three conditions, all required. The package name must match the installed app. The signing key must match. The version code must be strictly higher than the installed code. Pass all three and the update installs over the old copy, keeping its data. Fail any one and the installer says the app was not installed, and changes nothing.
The version name is not in that list. Android does not look at it.
Why a bigger label can still refuse to install
A file labelled 2.3, or 3.0, or 2.2.6 can carry version code 225 or lower. The label went up; the code did not. The installer compares the code, finds nothing newer, and refuses. The message looks like a broken file. It is a file that is not actually newer.
The reverse happens too. A file labelled 2.2.4 with version code 226 would install cleanly over this one, because 226 is higher than 225. The label is decoration as far as the update check is concerned.
Where to read the code
The install sheet on the phone shows the version name, not the code. To see the code you need the dump. On a computer with the Android build tools installed, aapt2 dump badging followed by the file path prints both numbers, the package name, the minimum Android version and the CPU architecture in one pass. That is the command used for this record.
Without those tools, the byte count and the hash still identify the file, and a file that matches this record has code 225. A file that matches neither record has a code this site cannot tell you.
The floor under the version
minSdkVersion 24 means Android 7.0. A phone below that reports a parse error rather than naming the version requirement, which sends people hunting for a corrupt file when the file is fine and the phone is too old. targetSdkVersion 35 means the app declares it handles Android 15 behaviour, including asking for the notification permission at runtime.
The package also contains native code for arm64-v8a and no other architecture. A 32-bit phone cannot run it, and no version number changes that.