Позволяет ли SKStoreProductViewController обновлять приложение?

Не удалось найти никакой информации по этому поводу... если я запускаю экземпляр SKStoreProductViewController из своего приложения, передавая ему URL-адрес этого приложения в iTunes, разрешает ли он обновления приложения? Другими словами, я хотел бы иметь кнопку «Обновить» в своем приложении, которая показывает SKStoreProductViewController и позволяет пользователю обновлять приложение оттуда.

Это трудно проверить, поскольку SKStoreProductViewController использует «песочницу» версии App Store, и я не уверен, что определяет, отображается ли кнопка «Открыть» или «Обновить».


person samvermette    schedule 14.03.2013    source источник


Ответы (4)


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

Конечно, он также показывает «Установить» для приложений, которыми вы владеете, но не установили, и «Открыть» для приложений, установленных и обновленных.

Используется производственный код в поставляемом приложении, хотя мне не удалось найти никаких подтверждений в документации Apple.

Обновление текущего приложения через

Если вы пытаетесь обновить открытое в данный момент приложение в SKStoreProductViewController, оно выдаст ошибку в более поздних версиях iOS, поскольку невозможно установить. Вместо этого вы должны открыть URL-адрес магазина приложений, чтобы принудительно открыть магазин приложений. itms-apps://itunes.apple.com/app/apple-store/id375380948?mt=8

введите здесь описание изображения

person Ryan Poolos    schedule 20.03.2013
comment
Это показывает, что вы можете обновить приложение B из SKStoreProductViewController, размещенного в приложении A. Это по-прежнему не дает ответа, можете ли вы обновить приложение A из SKStoreProductViewController, размещенного в приложении A. - person aloo; 21.03.2013
comment
Завтра, когда я буду на работе, я сделаю снимок экрана, показывающий экран обновления для запущенного в данный момент приложения. Это действительно работает. Я просто не успел сделать скриншот. - person Ryan Poolos; 21.03.2013
comment
Я проверил каждый iPad в здании. Очевидно, мы слишком религиозны в отношении обновлений, поэтому я не смог найти ни одного, нуждающегося в обновлении, чтобы сделать снимок экрана внутри того же приложения. Бесчисленные примеры появления кнопки обновления для приложений на том же устройстве в других приложениях, но нет записываемых примеров текущего приложения, представляющего собственную витрину, нуждающуюся в обновлении. - person Ryan Poolos; 21.03.2013
comment
Я могу убедиться, что сделаю снимок экрана при следующем обновлении, но это определенно будет дольше, чем 6 дней. - person Ryan Poolos; 21.03.2013
comment
Я понимаю скептицизм. Потому что, если вы нажмете «Обновить» в приложении, которое вы обновляете, что произойдет? Приложение закрывается при обновлении? позволяет ли он продолжать использовать старую версию до последней секунды? это странное взаимодействие точно. - person Ryan Poolos; 21.03.2013
comment
Собственно проблема. А пока мы просто отправим вас в магазин приложений и позволим вам обновляться там, а не в приложении. - person aloo; 22.03.2013

Интересно, что я попробовал то же самое для своего собственного приложения, где я попытался показать идентификатор своего приложения внутри SKStoreProductViewController, обнаружив более раннюю версию приложения. Экран был виден, кнопка обновления была там, ОДНАКО, нажатие на обновление и оставление в контексте приложения заставило SKStore выдать ошибку «Невозможно загрузить в это время». Однако я не пробовал сразу выходить из приложения после нажатия на обновление, должно работать

Вероятно, это потому, что приложение должно быть закрыто, прежде чем можно будет выполнить обновление?

person rishabh    schedule 07.10.2013
comment
как получить событие нажатия кнопки обновления при нажатии кнопки обновления. - person Jatin Patel - JP; 20.10.2016

Прошло некоторое время с тех пор, как у этого вопроса была любовь, но, похоже, он не полностью решен. Добавлю то, что нашел.

Вот как я провел свой тест. Мы только разрабатываем первую версию нашего приложения, и у нас нет версии в магазине приложений. Итак, что я сделал, так это взял идентификатор пакета из другого приложения, которое у меня есть в магазине приложений, поместил его в свое новое приложение в Xcode 8.3 и протестировал эту функцию обновления. Меня интересует вопрос: может ли приложение А обновлять себя с помощью SKStoreProductViewController?

1) iOS 10.3 на iPhone. Я провел тест, и он работает в 6 или около того испытаниях, которые я сделал. Что происходит, так это то, что когда я выполняю установку из SKStoreProductViewController, это приводит к сбою моего приложения (неудивительно — я устанавливаю поверх «того же» приложения — приложения с тем же идентификатором пакета), но установка продолжается. Вы видите обычный индикатор хода загрузки, который вы обычно видите при загрузке приложения из магазина приложений.

2) iOS 11 на iPad (кажется, iOS11, бета-версия 5 — номер сборки 15A5341f). При попытке обновления (обновите приложение A из приложения A) с помощью SKStoreProductViewController это не сработало. Я получаю следующее предупреждение после нажатия на кнопку «обновить». Я пробовал это несколько раз. Приложение не вылетает. Просто не загружается "обновление". Я не уверен, что это типично для бета-версий iOS или это изменение в поведении SKStoreProductViewController.

Ошибка обновления приложения

3) iOS 11, то же устройство: но попытался обновить приложение B из приложения A. Я провел этот тест, чтобы увидеть, не была ли проблема в том, что я просто не мог вообще загрузить в SKStoreProductViewController в бета-версии. Это сработало. Я смог сделать загрузку в этом случае.

Я попытаюсь отчитаться о тесте, как только будет выпущена iOS 11, чтобы увидеть, работает ли мой тест 2) или остается прежним.

person Chris Prince    schedule 10.08.2017

Да, я реализовал SKStoreProductViewController в тестовом приложении и загрузил приложение, которое уже было установлено на моем устройстве. Класс показывал кнопку «Открыть», и при нажатии на кнопку устройство переключалось в другое приложение. У меня нет доступных обновлений приложений, но поведение класса должно быть таким же. Поскольку кнопка меняется с «Купить» на «Открыть», мы знаем, что ее поведение является динамическим и что возможны обновления приложения.

введите здесь описание изображения

person Jack Humphries    schedule 20.03.2013
comment
+1 Я только что сделал свежий скриншот приложения, в котором было обновление, и там оно тоже работает. - person Ryan Poolos; 20.03.2013
comment
Это показывает, что вы можете обновить приложение B из SKStoreProductViewController, размещенного в приложении A. Это по-прежнему не дает ответа, можете ли вы обновить приложение A из SKStoreProductViewController, размещенного в приложении A. - person aloo; 21.03.2013