Переход на существующую оплаченную версию приложения на бесплатную версию с покупкой приложения

У меня есть существующие пользователи платного приложения в App Store. Я хотел бы перейти на приложение в бесплатное приложение с возможностью разблокировки. Есть ли способ превратить моих существующих пользователей в эту новую бесплатную версию, которая позволяет заплатить «обновление», чтобы существующие пользователи рассматривались так, как будто они уже заплатили за это обновление? ИЛИ, как я полагаю, мы должны поддерживать две отдельные базы кода, поскольку продвижение приложений продвигается вперед – вместо того, чтобы злиться на наших существующих клиентов, заставляя их покупать снова?

Я знаю, что изначально там не будет много авторитетных ответов на этот вопрос, поскольку Apple только сегодня начала разрешать поддержку покупок In-App из бесплатных приложений …

Одним из возможных решений может быть размещение кода в новом обновлении вашего платного приложения, которое будет переворачивать любой коммутатор, который вы использовали бы для определения платных клиентов (будь то в списке свойств или в другой форме). Если вы дадите своим существующим платным клиентам достаточно времени для обновления, они должны быть отмечены как оплаченные. Затем сделайте свою платную версию бесплатной / платной версией обновления и удалите существующую версию Lite из магазина. Новые клиенты должны будут использовать покупку в приложении для разблокировки полной версии, но существующие клиенты будут признаны уже оплаченными.

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

есть ли способ узнать, было ли ваше приложение запущено раньше? (например, настройки, которые вы пишете на выходе, созданные файлы данных, отметка даты первого запуска?)

если это так, вы могли бы поставить код в своем обновлении, например:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (nil == [defaults objectForKey:@"app_v2_has_been_run"]) { if (nil == [defaults objectForKey:@"some_key_v1_makes"] { // they never had v1 of your app } else { // they had v1 of your app, so unlock some stuff for them } [defaults setObject:[NSDate date] forKey:@"app_v2_has_been_run"]; // or whatever } 

Вам не нужны две отдельные базы кода – используйте условную компиляцию и создайте две цели.

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

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

Лучший способ – попросить базу данных Apple знать, когда пользователь покупает приложение или что-то в этом роде. Если кто-то знает трюки, чтобы сделать это, я буду рад, что он разделяет это;)

  • Лучший способ проверить, работает ли iPhone приложение в первый раз
  • Как отправить уведомление устройства на устройство с помощью FCM без использования XMPP или любого другого скрипта.?
  • Добавление изображений в кнопки UIActionSheet, как в UIDocumentInteractionController
  • NSData для UIImage
  • Документированный процесс использования подключения facebook для iPhone для загрузки фотографий
  • iPhone - Что такое reuseIdentifiers (UITableViewCell)?
  • Как запросить текущий IP-адрес iPhone?
  • iPhone UIButton с функциональностью UISwitch
  • Как отобразить изображение base64 в UIImageView?
  • Сравнение поплавковых и двойных типов данных в объекте C
  • Как преобразовать NSArray в NSData?
  • Давайте будем гением компьютера.