So I've been using the version property in C3 incrementally every time I roll out a new update, using a 0.xxx format. I honestly couldn't imagine this would cause any problems for me, but apparently it can.
So as I'm nearing release of my app, the last build that I uploaded was 0.998 - all seemed great, the light was there at the end of the tunnel, I was about to celebrate as I uploaded 1.0 in readiness for my app's launch, when the Play Store decided to slap me down with vigour.
Turns out, when our apps are exported, the version number is used to generate the versionCode and versionName for our APKs. The problem I'm having is that the versionCode for 0.998 is 9980000 while the versionCode for 1.0 is 1000000. Now, I'm not 100% sure why this is happening, but I think it has something to do with me not following a 0.x.x.x version structure when I first started.
Essentially, I want versionName to be 1.0 and versionCode to be 10000000 (higher than the previous build). As VersionCode is what the Play Store uses to roll out the highest version, it can't be less than the previous one.
I'm hoping there's an easy way to change versionCode, but I haven't been able to do it in C3.
My other option, which I'm really loathe to do, is to export with a version of 10.0 - that will give me a higher code, but users will see the app version and that's not really something I want. While I'm on this topic as well, I noted at developer.android.com/studio/publish/versioning that it states that
the versionCode value does not necessarily have a strong resemblance to the app release version that is visible to the user (see versionName, below). Apps and publishing services should not display this version value to users.
^ Based on that, I feel like maybe there should be two separate fields in C3 for these values.
Here are the screens from the Play Store that show my issues between 0.998 and 1.0 converting to codes.