Reaching the stores is the last mile of every mobile app. With .NET MAUI you start from the same project, but each platform has its own rules.
Android: signed AAB package
Google Play requires the AAB (Android App Bundle) format signed with an upload key. The key is created once and must be kept safe: without it you cannot publish updates.
dotnet publish -f net10.0-android -c Release \
-p:AndroidKeyStore=true \
-p:AndroidSigningKeyStore=upload-key.keystore \
-p:AndroidSigningKeyAlias=upload \
-p:AndroidSigningKeyPass=env:ANDROID_KEY_PASS \
-p:AndroidSigningStorePass=env:ANDROID_STORE_PASS
Passwords are read from environment variables: never write them in the project file.
iOS: certificates and provisioning
For iOS you need a Mac (remote is fine), an Apple Developer account, a distribution certificate and a provisioning profile for the app. Publishing produces an IPA package to upload with Apple's tools.
dotnet publish -f net10.0-ios -c Release -p:ArchiveOnBuild=true \
-p:CodesignKey="Apple Distribution: Company Ltd" \
-p:CodesignProvision="MyApp App Store Profile"
Checks before submitting
- Version:
ApplicationDisplayVersionfor the user andApplicationVersion, a number that must always increase. - Icons and splash screen defined once in the MAUI project and generated for each platform.
- Privacy policy and data collection declarations, required by both stores.
- Permission texts that are clear and consistent with actual use.
- Tests on real devices, in Release, before every submission.
Automate
A continuous integration pipeline that builds, signs and uploads the test version reduces errors and time: releasing becomes a repeatable operation, not a manual ritual.
Comments (0)
No comments yet.