Реализация продуктов для покупки приложений

Рассмотрим следующий пример. Скажем, у нас есть приложение, в котором профессиональные писатели пишут рассказы из веб-интерфейса. И тогда эти истории становятся доступными для пользователя приложения iOS, как и в приложениях для покупки приложений.

Как вы, возможно, знаете, нам нужно заранее создать приложение для покупки приложений. Но в наших ситуациях это означает, что для каждой истории, созданной писателями, нам нужно будет создать новый продукт IAP и ждать, пока Apple его одобрит.

Чтобы обойти это, я планирую создавать общие "расходные" продукты в IAP, например, историю стоимостью 1,99 долл., историю стоимостью 2,99 долл. США и т.д. и т.д. Затем в пользовательском интерфейсе приложений я покажу список историй созданных писателями и покажу соответствующие цены на истории, как это указано авторами, когда они создали историю. Как только пользователь нажат на кнопку покупки, я покажу покупку для общего потребительского продукта той же цены и завершу процесс покупки приложения.

Теперь вопрос в том, одобрит ли Apple такую ​​реализацию? Соответствует ли это их политике IAP? Я спрашиваю, как я не мог найти руководство для рабочего процесса, такого как это.

Другим подходом к реализации этого является внедрение кредитной/валютной системы в приложении, например, использование игр. Где люди покупают кредиты/монеты, а затем покупают предметы с монетами. Это проверенный и проверенный подход, но он не соответствует моей аналогии приложения, следовательно, вопрос.

Ответ 1

То, что вы хотите достичь, совершенно выполнимо, единственное, что ваш приобретаемый контент должен быть динамичным. Вам придется загружать идентификаторы продуктов с сервера, вместо того, чтобы их жестко закодировать в вашем приложении.

Чтобы обратиться к вашему примеру, я могу представить, что представление таблицы снабжается списком объектов, на котором будет храниться идентификатор SKProduct. Вам нужно будет это сделать, потому что на момент написания статьи вы не сможете получить все доступные идентификаторы продуктов для своего приложения с серверов Apple. Я знаю, что это боль в заднице, они не реализовали эту функцию, но, если честно, если они еще не думают, что они когда-либо будут.

Это метод, который я имею в виду: initWithProductIdentifiers

Вы предоставляете ему NSSet со всеми идентификаторами, которые хотите получить, но если вы предоставляете пустой набор или нуль, он не отвечает со всем существующим. Вы можете подать сообщение об ошибке с Apple, если считаете, что это не работает должным образом. Пожалуйста, проверьте этот ответ, если у вас все еще есть сомнения: ссылка

Еще одна важная вещь, которую нужно отметить: вам придется загружать свои продукты вручную. Apple не предоставляет какой-либо API, чтобы автоматизировать процесс. Это означает, что каждый раз, когда автор загружает что-то на ваш сервер, вам нужно будет войти в iTunes и создать продукт. Кроме того, вы будете ограничены 10 000 продуктами, потому что это максимальное количество различных продуктов, которые вы можете зарегистрировать в Apple. Я также рекомендую вам быстро прочитать руководство iTunes Connect, в котором есть важная информация, подобная той, которую я только что упомянул: iTunes Connect

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

Сказав это, я бы рекомендовал вам пересмотреть свою бизнес-модель. Действительно ли это стоит всех проблем с загрузкой продуктов по одному на один? Или лучше пойти по подписке, в которой ваши пользователи платят фиксированную сумму денег за загрузку нескольких статей в месяц. У вас могут быть разные уровни, например, базовые, премиальные (неограниченные загрузки) и т.д. И контроль доставки статей с ваших серверов. Это вам, но для меня ответ довольно ясен.

Ответ 2

Приты

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

Вы можете посмотреть на сторонние сервисы, такие как UrbanAirship, которые значительно сократят время, затрачиваемое на динамическое предоставление вашего контента, отслеживание подписки и истечения срока действия и т.д.