loading experience

.NET MAUI

Publishing a .NET MAUI app to Google Play and the App Store

Signing, AAB packages, provisioning profiles and checks before submitting to the stores.

Publishing a .NET MAUI app to Google Play and the App Store

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.

One project, two signing and publishing paths.
One project, two signing and publishing paths.

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: ApplicationDisplayVersion for the user and ApplicationVersion, 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.

Leave a comment