Какова лучшая практика для поддержки устаревшего / обновленного iOS StoreKit? - PullRequest
2 голосов
/ 06 сентября 2011

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

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

Простейший способ справиться с этим, я думаю, состоит в том, чтобы провести какой-то рутинный тест на наличие флага в файле plist (или NSUserDefaults): если флага нет, он обновляется с предыдущей версии. .

Еще один вызов - обратный вызов, который запускается, когда ядро ​​обнаруживает первый запуск обновленной версии приложения. Однако я не могу найти много в доступной документации для поддержки такого рода.

Кто-нибудь может дать рекомендацию?


РЕДАКТИРОВАТЬ: Есть также два связанных сценария, которые необходимо рассмотреть:

1) У пользователя установлена ​​старая версия приложения. Они обновляют, но позже удаляют приложение. При переустановке (новая версия из магазина) у них все равно должен быть доступ к устаревшим функциям.

2) Пользователь удалил старую версию приложения, но решает установить обновленную версию из магазина. Что касается приложения, то это совершенно новая установка.

(1) кажется адресуемым, если процедура обновления создаст в StoreKit количество покупок по $ 0. Таким образом, поддержка Apple для восстановления приложений (и покупок) должна просто работать.

Что касается (2), я понятия не имею, есть ли способ обойти это.

1 Ответ

0 голосов
/ 06 сентября 2011

Я попробовал первый маршрут (проверка на наличие значения файла plist), и он работал для людей, которые обновляли, но он не работал для тех, кто удалил приложение, а затем загрузил и попытался использовать обновление. (Или если в какой-то момент они удалят приложение и переустановят, они потеряют функцию)

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

...