2013-08-04 2 views
0

У меня есть платное приложение в магазине приложений Apple, и я пытаюсь создать бесплатное приложение с ограниченными функциями, чтобы отличить его от моего платного приложения , Я использовал макросы препроцессора в настройках сборки, чтобы различать эти два приложения с помощью LITE = 1. До этого все было в порядке. Ограниченные функции могут быть разделены с помощью «#ifdef LITE»Добавление «#define xxx» после выхода приложения ответило на действие пользователя

Моя проблема в том, когда пользователи покупают покупку в приложениях для платформ. Легко, если я могу добавить '#define LITE' в приложение, когда пользователи покупают при покупке приложения. Как я могу это получить?

+0

wow, -1. из-за sooooooo фундаментальный вопрос? – bureaucoconut

+0

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

ответ

2

Это не сработает. Макросы препроцессора - это PRE-обработка: код удален, текстовые подстановки, #ifdefs и т. Д. Все делается до того, как компилятор даже видит код.

Если вы удалили код, окружив его в блоке #ifdef, он исчез. Этого просто нет.

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

+0

Спасибо. Это нехорошее поведение, которое использует #ifdef для ограниченных функций, если оно будет разблокировано позже, не так ли? – bureaucoconut

Смежные вопросы