How to get the app version from ContentPage?

You can do this by implementing a Dependency Service. First you define an interface in your shared code:

namespace MyApp
{
    public interface IAppVersionProvider
    {
        string AppVersion { get; }
    }
}

In each platform project you then implement the interface.

iOS

[assembly: Dependency(typeof(AppVersionProvider))]
namespace MyApp.iOS
{
    public class AppVersionProvider : IAppVersionProvider
    {
        public string AppVersion => NSBundle.MainBundle.InfoDictionary[new NSString("CFBundleVersion")].ToString();
    }
}

Android

[assembly: Dependency(typeof(AppVersionProvider))]
namespace MyApp.Droid
{
    public class AppVersionProvider : IAppVersionProvider
    {
        public string AppVersion
        {
            get
            {
                var context = Android.App.Application.Context;
                var info = context.PackageManager.GetPackageInfo(context.PackageName, 0);

                return $"{info.VersionName}.{info.VersionCode.ToString()}";
            }
        }
    }
}

You can then retrieve the version number from shared code through:

var version = DependencyService.Get<IAppVersionProvider>();
var versionString = version.AppVersion;

Edit: listed incorrect nuget package, changes made below.

You should in theory be able to use something like the below inside the OnStart(); method of your App.cs in your forms project.

    Context context = this.ApplicationContext;
    SupportFunctions.Version = context.PackageManager.GetPackageInfo(context.PackageName, 0).VersionName;

However we use a plugin created by Mark Trinder called "Xam.Plugin.Version" which can be found on nuget1 and on GitHub2. Once it's installed into your forms & native projects it's simply called as so:

using Version.Plugin;

private void SomeMethod()
{
     MyLabel.Text = CrossVersion.Current.Version;
}

1 nuget package Here

2 Github Here :


If you don't want to use dependency services, you can just use the class VersionTracking.

The property VersionTracking.CurrentVersion will give you the Version you can set in your Android properties and your iOS info.plist.

This class is provided by Xamarin.Essentials and can give you a lot of informations. Please, check the documentation here for more informations.