StoreKit на iOS-autorenewable подписка-Как узнать, является ли это бесплатная пробная версия или нет?

в iTunes Connect можно предоставить бесплатный пробный период для автообновляемых подписок.

App > Manage In App Purchases > Subscription Basic > 1 Month >  Offer a free trial?

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

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

Screenshot from iTunes Connect

2 ответов


TLDR; это невозможно. Вы должны сами управлять этой информацией.


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

кроме того, квитанция дает вам вся необходимая информация: для данного продукта вы знаете, какой пробный период вы предоставляете. Поэтому при покупке вы можете сохранить дату покупки, указанную в квитанции о покупке, в объекте модели или в NSUserDefaults или в связке ключей рядом с данными покупки. На этом этапе вы знаете, когда пробная версия истекла, и убедитесь, что подписка по-прежнему действительна. Если вы не можете, вы можете отключить доступ к контенту, пока не сможете это сделать.

для дополнительная информация о квитанциях о покупке и подписках проверьте Руководство По Покупке В Приложении компания Apple.


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

Итак, если Ваш идентификатор продукта, например: com.domain.app.product_paid1month_free7days вы разделяете идентификатор на стороне клиента и знаете, что продолжительность платной подписки 1 month и продукт имеет бесплатный пробный период 7 days.

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