2014-02-08 2 views
3

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

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

  1. Пользователь исследует приложение
  2. Переходов на In-App вариант кнопки покупки
  3. Проверка на ICloud наличие

    1. ICloud Доступные :

      1. Продолжить покупку в обычном порядке
    2. ICloud не доступна:

      1. вид Показать оповещение: «Вход в ICloud, необходимыми для получения доступа к подписанному содержимому на другом устройстве», с вариантами «OK "и "Продолжить"

        1. Нажмите кнопку OK:

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

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

  5. Приобретение успешно.

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

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

    1. ICloud Доступно:

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

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

ВОПРОС:

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

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

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

+1

Как хранить учетные данные пользователя iCloud в пользовательских по умолчанию, устройство? (Кстати, я бы не использовал пользовательские значения по умолчанию для этого, я бы использовал Key Chain). Кроме того, существует некоторое беспокойство по поводу stackoverflow, что Apple отклонит метод восстановления, который использует только iCloud (см. Http://stackoverflow.com/questions/9492898/how-to-support-multiple-devices-with-non-renewing-in -app-покупка/9500185 # 9500185). –

+0

Принято, это не поможет мне сохранить учетные данные в пользовательских настройках по умолчанию. Теперь я собираюсь избежать любого сценария, о котором я должен думать о сохранении учетных данных пользователя. Я не считаю это правильным. Огромное спасибо. –

ответ

0

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

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

Смежные вопросы