У меня есть большая ( > 1 ГБ) покупка в приложении, которую я хочу доставить, используя загруженную Apple загрузку. Документы Apple говорят, что контент Apple, размещенный в IAP, не имеет ограничения на размер, который можно загрузить по сотовой связи. Я хотел бы иметь возможность гарантировать, что покупка разрешена только при подключении WiFi.
Есть вероятность, что во время загрузки пользователь может выйти из двери и перейти на сотовый. В этот момент я хотел бы приостановить или отменить загрузку до тех пор, пока WiFi не будет снова доступен.
Я поднял TSI и ответ Apple: "Наши инженеры рассмотрели ваш запрос и пришли к выводу, что нет поддерживаемого способа достижения желаемой функциональности"
Кажется целесообразным использовать Reachability, чтобы проверить тип подключения перед началом загрузки и использовать делегат наблюдателя во время загрузки, чтобы убедиться телефон не переключился на сотовый.
Будет ли это работать надежно? Есть ли лучший способ сделать это?
Также с точки зрения поддержания контроля по мере продолжения загрузки, он не ясен из документов Apple, если загруженная Apple загрузка, которая работает в фоновом режиме, находится в моем приложении, или это происходит из процесса. Другими словами, если мое приложение прекращено, можно ли гарантировать, что загрузка будет остановлена или продолжит работу за пределами моего приложения?
Обновление:. С учетом некоторого опыта, вопрос несколько спорный. Для непрерывной загрузки данных требуется, чтобы телефон имел подключение WiFi и внешнее питание. Без них загрузка немного приостанавливается после того, как экран отключится - управление питанием телефона, я думаю. Кроме того, загрузка с помощью IAP не работает, она продолжает даже аварийные ситуации с вашим приложением (явное убийство приложения останавливает загрузку, хотя). Когда ваше приложение перезапустится, делегаты StoreKit вызывают для завершения загрузки и покупки.