Plugin.StoreReview 7.0.0-beta

This is a prerelease version of Plugin.StoreReview.
dotnet add package Plugin.StoreReview --version 7.0.0-beta                
NuGet\Install-Package Plugin.StoreReview -Version 7.0.0-beta                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Plugin.StoreReview" Version="7.0.0-beta" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Plugin.StoreReview --version 7.0.0-beta                
#r "nuget: Plugin.StoreReview, 7.0.0-beta"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Plugin.StoreReview as a Cake Addin
#addin nuget:?package=Plugin.StoreReview&version=7.0.0-beta&prerelease

// Install Plugin.StoreReview as a Cake Tool
#tool nuget:?package=Plugin.StoreReview&version=7.0.0-beta&prerelease                

Store Review Plugin for .NET MAUI, iOS, Android, MacCatalyst, Windows

Platform Support

Support for .NET 8+ for iOS/Android/MacCatalyst/Windows/MAUI

Build Status

alternate text is missing from this package README image

NuGet

NuGet

API

Open store listing

This will open the related app store for your app identifier. iOS: This is found on your iTunes connect page for your app Android: This is your package Id from your Android Manifest. UWP: This is the Store ID: You can find the link to your app's Store listing on the App identity page, in the App management section of each app in your dashboard.

/// <summary>
/// Opens the store listing.
/// </summary>
/// <param name="appId">App identifier.</param>
Task<bool> OpenStoreListing(string appId);
Open to Review Page

Launches app directly to Review Page if possible

/// <summary>
/// Opens the store review page.
/// </summary>
/// <param name="appId">App identifier.</param>
Task<bool> OpenStoreReviewPage(string appId);
Request In-App Review

UWP (all versions), Android and iOS only to prompt for the user to review the app. Only on Android 5.0 (API level 21) & iOS 10.3+ devices:

Read for iOS: Requesting Reviews with iOS 10.3’s SKStoreReviewController

Read for Android: In-app reviews for your Android apps

/// <summary>
/// Requests the review.
/// </summary>
Task<ReviewStatus> RequestReview(bool testMode)

If you are on .NET 8 Windows you will need to set the Window handle before calling the method:

#if WINDOWS
        var windowObject = (MauiWinUIWindow)App.Current.Windows[0].Handler.PlatformView;
        StoreReviewImplementation.Window = windowObject;
#endif

Test mode is only used on Android.

Testing & Debugging issues

iOS
  • You cannot submit a review on iOS while developing, but the review popup dialog displays in your simulator/device.
  • However, when you download the app from Testflight, the popup dialog does not display at all, as mentioned here:

When you call this method while your app is still in development mode, a rating/review request view is always displayed so that you can test the user interface and experience. However, this method has no effect when you call it in an app that you distribute using TestFlight."

Android
  • Unlike iOS, you cannot see the review popup dialog while developing or if you distribute it manually. As you can see here, you have to download the app from the Play Store to see the popup. I recommend using Android Play Store's “Internal App Sharing” feature to test.
  • Occasionally, some devices may not show the popup at all as seen here. One way to test whether your device is affected by it, is by downloading this game that uses v3.1 of this nuget, target SDK version 30, target framework v11.0 and win the game once to see the popup. Additionally, you can debug the error using adb locat, as you can see here
  • The most common issue/crash type is that developers release the app in the release configuration but they only test in the debug configuration. They do not realize that they have set Linker behavior to Link SDK assemblies only/Link all, and did not follow the proguard steps mentioned above

Screenshots

iOS & Android screenshots of the In-App Review image

License

Under MIT, see LICENSE file.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-android34.0 is compatible.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-ios18.0 is compatible.  net8.0-maccatalyst was computed.  net8.0-maccatalyst18.0 is compatible.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net8.0-windows10.0.19041 is compatible.  net9.0 is compatible.  net9.0-android35.0 is compatible.  net9.0-ios18.0 is compatible.  net9.0-maccatalyst18.0 is compatible.  net9.0-windows10.0.19041 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Plugin.StoreReview:

Package Downloads
ReviewService.NativePrompters

Native implementations of IReviewPrompter interface from the ReviewService.Abstractions package.

ContactManager.Xamarin

Package Description

AskForRatingBuddy

MonoGame library for periodically asking the user to rate your app on the Google Play Store and Apple App Store

GitHub repositories (4)

Showing the top 4 popular GitHub repositories that depend on Plugin.StoreReview:

Repository Stars
brminnick/GitTrends
A iOS and Android app to monitor the Views, Clones and Star history of your GitHub repos
MoneyFox/MoneyFox
A way to make budgeting easy. A basic idea for the community, made even better by the community.
jamesmontemagno/app-ac-islandtracker
Animal Crossing Island Tracking Mobile App
sthewissen/MVP
Unofficial app to help MVPs manage their community activities
Version Downloads Last updated
7.0.0-beta 108 12/1/2024
6.2.0 83,489 3/9/2024
6.2.0-beta 231 3/9/2024
6.1.1-beta 259 3/8/2024
6.1.0-beta 496 2/26/2024
6.0.0 188,970 6/28/2023
6.0.0-beta 993 6/9/2023
5.0.1 87,369 1/13/2023
5.0.1-beta 735 1/13/2023
5.0.0-beta 4,080 8/6/2022
4.0.0-beta 1,268 5/11/2022
3.3.1 185,145 3/14/2022
3.3.1-beta 776 3/7/2022
3.3.0 9,815 2/26/2022
3.3.0-beta 757 2/22/2022
3.2.0-beta 9,655 4/21/2021
3.1.0 266,239 3/10/2021
3.1.0-beta 17,575 2/23/2021
3.0.0-beta 22,609 9/23/2020
2.0.0.5 156,086 5/23/2018
2.0.0.5-beta 1,469 5/16/2018
2.0.0.4-beta 1,418 5/14/2018
2.0.0.3-beta 1,383 5/10/2018
2.0.0.1-beta 1,409 3/28/2018
1.0.1 4,622 7/3/2017
1.0.0.11-beta 1,524 7/1/2017
1.0.0.10-beta 1,418 6/30/2017
1.0.0.9-beta 1,364 6/30/2017
1.0.0.8-beta 1,513 6/26/2017
1.0.0.7-beta 1,455 6/21/2017
1.0.0.6-beta 1,416 6/20/2017
1.0.0.5-beta 1,456 6/11/2017