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

Другой метод должен изменить сокет, таким образом, это никогда не генерирует SIGPIPE на записи (). Это более удобно в библиотеках, где Вы не могли бы хотеть глобальный обработчик сигналов для SIGPIPE.

На самом основанном на BSD (MacOS, FreeBSD...) системы, (принятие Вас используют C/C++), можно сделать это с:

int set = 1;
setsockopt(sd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int));

С этим в действительности, вместо сгенерированного сигнала SIGPIPE, EPIPE будет возвращен.

21
задан Meltemi 16 October 2009 в 01:08
поделиться

3 ответа

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

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

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
}
5
ответ дан 29 November 2019 в 22:03
поделиться

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

2
ответ дан 29 November 2019 в 22:03
поделиться

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

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

5
ответ дан 29 November 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: