Как поддерживать несколько устройств с обновлением In-App Purchase?
Я создаю приложение iOS, которое будет включать IAP с не обновляющейся подпиской. Apple предоставляет этот самородок в своем обзоре IAP:
Вам необходимо предоставить не возобновляемые подписки на все устройства, принадлежащие пользователю. Не возобновляемые подписки автоматически не синхронизируются со всеми устройствами в Store Kit; вы должны реализовать эту инфраструктуру самостоятельно. Например, большинство подписей предоставляется внешним сервером; вашему серверу необходимо будет внедрить механизм идентификации пользователей и связать покупки подписки с пользователем, который их приобрел.
Я хотел бы следовать этому правилу: я хочу, чтобы мои пользователи могли использовать подписку, которую они покупают на одном устройстве, на других устройствах. Итак, как я могу определить одного и того же пользователя на своем iPhone и iPad? Я понимаю, что вы не можете использовать Apple ID, и вы не можете полагаться на метод регистрации.
Я только что нашел этот вопрос; ответ, данный там, кажется неработоспособным. Должно быть что-то более элегантное, чем другие сделали.
Ответы
Ответ 1
У меня есть предложение от Gavin McKenzie, которое звучит как лучший выбор, который я слышал:
После покупки подписки сделайте "короткий код" доступным пользователю. Код также будет храниться на сервере, привязанный к этой учетной записи пользователя. Когда они нажмут "Восстановить" на другом устройстве, запросите короткий код с оригинального устройства и учетной записи, тем самым связав эти устройства вместе.
Гэвин предложил использовать это в методе "спаривания", аналогичном Bluetooth: при восстановлении инициируйте сопряжение на устройстве A, которое генерирует короткий код и выталкивает его на сервер. Затем устройство B может использовать этот код. Через пять минут или при отключении экрана сопряжения код будет удален.
Я не уверен, как это будет стоять, если вы хотите восстановить на том же устройстве, скажем, после удаления телефона и восстановления. Но это похоже на хорошее начало.
Ответ 2
Если вы можете отказаться от поддержки iOS ниже версии 5.0, вы можете использовать iCloud для синхронизации пары значений ключа между пользовательскими устройствами.
Ответ 3
Смотрите это:
http://iphonedevsdk.com/forum/business-legal-app-store/88698-floored-by-new-rejection.html
Очевидно, вы можете потребовать имя пользователя/пароль перед покупкой. Это действительно единственный способ, который имеет смысл. Код может делиться тысячами людей, что плохо.
Ответ 4
Отъезд Frac.as. Он предлагает вариант сочетания "короткий код", предложенный выше, но с некоторыми встроенными смартфонами для предотвращения злоупотреблений. Это SaaS API с большим свободным уровнем.