Appcenter распространяет обновления внутри приложения, не работающие в Xamarin.iOS - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь распространить внутреннее приложение для iOS (созданное с использованием Xamarin.iOS) с помощью Visual Studio AppCenter, но не могу заставить работать обновления в приложении.

когда я загружаю и устанавливаю приложение (по ссылке электронной почты), браузер никогда не открывается для регистрации обновлений в приложении, а когда я распространяю новый выпуск для этой группы, приложение не предлагает обновления.

Я следовал инструкциям здесь .

Я добавил записи info.plist и запустил модуль распространения appcenter. Отчеты Analytics + Crash работают нормально, поэтому с AppCenter ID все в порядке.

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Если вы хотите создать свой собственный VersionChecker, в переопределении ViewDidLoad первого контроллера представления вы можете вызвать функцию CheckVersion ()

public override void ViewDidLoad()
{        
    base.ViewDidLoad();
    CheckVersion();
    OtherCode();
}

А затем в функции CheckVersion вы можете сделать что-то вроде этого

        public async void CheckVersion()
        {
            var newVersionAsString = new VersionObject();
            string responseContent = string.Empty;

            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    var versionCheckUri = "https://gist.githubusercontent.com/saamerm/af01aec0187d38a22fdd9b4378afc9c3/raw/680332a9a45eb015bc17fbf817fbac537348e3d4/Version.json"
                    using (HttpResponseMessage httpResponse = await httpClient.GetAsync(versionCheckUri))
                    {
                        if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK)
                        {
                            responseContent = await httpResponse.Content.ReadAsStringAsync();
                            newVersionAsString = JsonConvert.DeserializeObject<VersionObject>(responseContent);
                        }
                    }
                }
                catch (Exception)
                {
                }
            }

            var currentVersion = new Version(NSBundle.MainBundle.InfoDictionary["CFBundleShortVersionString"].ToString());

            if (currentVersion != null && !string.IsNullOrWhiteSpace(newVersionAsString) && (new Version(newVersionAsString.latestVersion)) > currentVersion)
            {
                string AppleStoreAppUrl = "itms-apps://itunes.apple.com/us/app/pages/{YOURAPPURL}?mt=8";
                var alert = new AlertView { ViewController = this, Title = "Update Required", Message = "To continue using this mobile app, please install the latest version." };
                alert.AddAction("Update Now", ActionStyle.Cancel, (action) => { UIApplication.SharedApplication.OpenUrl(new NSUrl(AppleStoreAppUrl)); this.Dispose(); }).Show();
            }

где VersionObject мы получили с jsonutils.com

 public class VersionObject
    {
        public string latestVersion { get; set; }
    }

Пожалуйста, проверьте это перед использованием, я вижу случай, когда он может не работать

0 голосов
/ 02 июня 2019

@ Лаванья может быть много разных причин, почему они не работают.Как вы можете видеть в заметках здесь и здесь ,

  1. Загрузили ли ваши тестеры приложение из браузера по умолчанию для сафари?

  2. Включены ли файлы cookie для Safari в их настройках?

  3. Ваше приложение еще не доступно в App Store?

Не могли бы вы предоставить более подробную информацию?Потому что, если вы ответили «Нет» на любой из этих вопросов, вы не сможете использовать Центр обновлений приложений MS App Center на iOS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...