A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
Hello @Kim Strasser ,
Thanks for your question.
For Google Play Store, you can get the URL even before publishing, as soon as you create the app in the Play Console.
URL format:
https://play.google.com/store/apps/details?id=com.yourcompany.yourgame
Replace com.yourcompany.yourgame with your package name from your AndroidManifest.xml. The URL itself can be constructed right now - it becomes publicly accessible once you publish the app.
For Apple App Store, you need to create the app record in App Store Connect first:
- Go to App Store Connect
- Click My Apps → Create a new app record.
- Once the record is created, go to
App Information - You will see your Apple ID (a numeric value)
- Your listing URL will be:
https://apps.apple.com/app/id[YOUR_APPLE_ID]
The page only becomes publicly accessible after Apple approves and publishes your app, but you can already use this URL in your code now.
Furthermore, for the best user experience, I recommend using deep links instead of opening the browser directly. Deep links open the Google Play or App Store app directly on the user's device, which feels more native and seamless.
The implementation below also includes a browser fallback in case the store app is not available on the device.
Android — in Activity1.cs:
using Android.Content;
using Android.Net;
public class Activity1 : AndroidGameActivity
{
private Game1 _game;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var g = new Game1();
_game = g;
_game.OnFeedbackButtonClicked = () =>
{
RunOnUiThread(() => OpenStoreListing());
};
g.Run();
}
private void OpenStoreListing()
{
try
{
var uri = Uri.Parse("market://details?id=com.yourcompany.yourgame");
var intent = new Intent(Intent.ActionView, uri);
StartActivity(intent);
}
catch
{
var uri = Uri.Parse("https://play.google.com/store/apps/details?id=com.yourcompany.yourgame");
var intent = new Intent(Intent.ActionView, uri);
StartActivity(intent);
}
}
}
iOS — in Program.cs:
using Foundation;
using UIKit;
[Register("AppDelegate")]
class Program : UIApplicationDelegate
{
private static Game1 game;
static void Main(string[] args)
{
UIApplication.Main(args, null, typeof(MyProjectiOS.Program));
}
public override void FinishedLaunching(UIApplication app)
{
var g = new Game1();
game = g;
game.OnFeedbackButtonClicked = () =>
{
UIApplication.SharedApplication.InvokeOnMainThread(() =>
{
OpenStoreListing();
});
};
g.Run();
}
private void OpenStoreListing()
{
var deepLinkUrl = new NSUrl("itms-apps://apps.apple.com/app/idYOUR_APPLE_ID");
if (UIApplication.SharedApplication.CanOpenUrl(deepLinkUrl))
{
UIApplication.SharedApplication.OpenUrl(
deepLinkUrl,
new UIApplicationOpenUrlOptions(),
null
);
}
else
{
var browserUrl = new NSUrl("https://apps.apple.com/app/idYOUR_APPLE_ID");
UIApplication.SharedApplication.OpenUrl(
browserUrl,
new UIApplicationOpenUrlOptions(),
null
);
}
}
}
Shared Game Logic — in SharedCode/Game1.cs:
public class Game1 : Game
{
public Action OnFeedbackButtonClicked;
private void OnFeedbackButtonPressed()
{
OnFeedbackButtonClicked?.Invoke();
}
}
Additionally, I recommend the following feedback flow for a better user experience:
- User taps a
FeedbackorRate Usbutton in your game — ideally placed in the Settings screen, Main Menu, or Pause screen - A small dialog appears with two options:
-
Leave a Rating— quick stars -
Write a Review— opens the full store page
-
- When the user taps the store link → open directly in the native store app (not the browser)
While these are non-Microsoft links, they're official App Store Connect documentation and are safe to visit.
I hope this addresses your question. If this response was helpful, please consider following the guidance to provide feedback.