Невозобновляемая покупка в приложении с восстановлением с использованием iCloud

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

Пройдя несколько документов, я узнал, что iCloud стал лучшим способом реализовать его и предоставить подписной контент для нескольких устройств пользователя. Наконец, я решил, что следующий проект будет реализован:

  1. Пользователь исследует приложение
  2. Щелчок по кнопке покупки в приложении
  3. Проверить доступность iCloud

    1. Доступен iCloud:

      1. Продолжайте покупку обычным способом
    2. iCloud недоступен:

      1. Показать оповещение: «Войдите в iCloud, чтобы получить доступ к подписанному контенту на другом устройстве», с опциями «ОК» и «Продолжить в любом случае»,

        1. Нажмите ОК:

          1. Остается на одной странице
        2. Нажмите «Продолжить в любом случае»:

          1. Продолжается покупка
          2. Если вы уже приобрели и приобрели iCloud, обновите квитанцию ​​iCloud
  4. При успешной покупке мы получаем квитанцию ​​о транзакции. Мы будем хранить эту квитанцию ​​в iCloud (одно время в iCloud на момент покупки), используя хранилище ключей, а также по умолчанию для пользователей

  5. Покупка успешна.

  6. Пользователь запускает приложение с другого устройства

  7. Проверьте наличие транзакции в пользовательских настройках по умолчанию. Если доступно, проверьте и действуйте соответственно
  8. Если квитанция недоступна для пользователей по умолчанию, проверьте наличие iCloud

    1. Доступен iCloud:

      1. Проверьте, доступно ли получение транзакции
      2. Если доступно, проверьте квитанцию. Если квитанция действительна, укажите подписанный контент
      3. Если они недоступны, никаких действий и действий не требуется
    2. iCloud недоступен:

      1. Показывать предупреждение: «Пожалуйста, войдите в свою учетную запись iCloud, чтобы наслаждаться подписным контентом, если есть» с опциями «ОК»
      2. Внутри приложения пользователь переключается на вариант «подписаться на добавление HD», проверит его подписку

ВОПРОС:

  1. Пользователь покупает приложение без входа в iCloud
  2. Запускает приложение с другого устройства
  3. Он не может получить подписанный контент

Единственный способ справиться с этим сценарием идеально, учитывая все тестовые сценарии, состоит в том, чтобы хранить учетные данные пользователя iCloud в пользовательских значениях по умолчанию, которые я не уверен, что можно сделать / рекомендуется / разрешено. Любое предложение приветствуется.

Кроме того, мне понадобятся любезные взгляды людей на вышеупомянутые шаги, что будет правильным путем или нет. Просьба предложить, могу ли я улучшить его или иметь лучший способ.

One Solution collect form web for “Невозобновляемая покупка в приложении с восстановлением с использованием iCloud”

Я создал приложение, которое использует iCloud NSUbiquitousKeyValueStore (который имеет аналогичный селектор, такой как NSUserDefaults ) для синхронизации потребляемого типа элемента IAP. Вы можете проверить репозиции на Github, как MKiCloudSync, чтобы узнать, как это работает.

При использовании NSUbiquitousKeyValueStore нет необходимости, чтобы приложение NSUbiquitousKeyValueStore статус iCloud iDevices. В моем случае, если у кого-то есть 2 устройства, устройство 1 имеет вход iCloud, но устройство 2 нет, я проигнорирую устройство 2.

  • Ошибка: использование неразрешенного идентификатора «ParseClientConfiguration»
  • Xcode не создает автоматически заголовок?
  • Где выходы и действия, хранящиеся в коде в Objective C?
  • Автоматическая проверка орфографии для Xcode
  • Могу ли я открывать события из пользовательских представлений для подключения через раскадровку?
  • как улучшить производительность анимации UAG
  • Как играть в аудиопоток m3u в приложении iOS
  • Создание будильника с помощью NSTimer
  • Как я могу решить Завершение из-за ошибки памяти
  • Xcode и Github не играют вместе
  • Почему мне нужно развернуть эту переменную?
  • Interesting Posts

    XCTests не запускает приложение в симуляторе с перерывами

    Права на Facebook, необходимые для того, чтобы пометить друга в стене.

    Протоколы только для классов в Swift

    API расширения Apple iMessage. Обнаружение того, использует ли получатель iMessage

    XCode Project: как создавать подпроекты как статические библиотеки?

    convertRect: toView: работает по-разному на сетчатке iPad и iPad 2

    Проблемы с вращением UIActivityViewController

    AVPlayer не может играть

    Отправка приложения в App Store с предопределенной датой выпуска и последующая публикация обновления

    iOS 10.1 (полная версия) несовместима с последней версией Xcode

    Загрузка нескольких изображений из расширения Share

    Методы CLLocationManagerDelegate, не вызываемые в Swift-коде

    Есть ли способ отправить рейтинг в App Store, не покидая приложение?

    Встряхните UIView … но используя UIKit Dynamics

    Воспроизведение аудио в фоновом режиме И уважение Бесшумный переключатель

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.