Невозобновляемая покупка в приложении с восстановлением с использованием 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.

  • «Загрузили« XXX »наконечник, но розетка для просмотра не была установлена». - снова
  • Снимок экрана для симулятора iPhone не соответствует размеру
  • Отправить сообщения без MFMessageComposeViewController
  • Проблемы после обновления до IOS11 и Xcode9 !! "Com.google.Maps.LabelingBehavior", "Статус чтения TIC"
  • Удаление в NSDocumentDirectory и UIScrollView
  • CUICatalog: Invalid Request: запрос подтипа без указания идиомы
  • Как я могу автоматизировать создание исходного дистрибутива для iPhone-приложения с помощью Xcode?
  • Xcode autocomplete, чтобы показать предложение, когда «Содержит», а не «Начать с»,
  • Xcode 6 удаляет группу приложений
  • iOS: проблемы с TapGestureRecognizer
  • Как мигать текст UITextview с использованием рамки quartzcore
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.