Лучший способ создания как & # 8220; free / demo & # 8221; а коммерческие приложения из одного и того же исходного кода?

StackOverflow https://stackoverflow.com/questions/274785

  •  07-07-2019
  •  | 
  •  

Вопрос

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

Исходный код для обоих приложений будет в точности одинаковым, единственное отличие будет в базе данных SQLite, в которой хранятся элементы в приложении.

Я понимаю, что обе версии приложения должны иметь разные имена пакетов и разные значки. Я пытаюсь найти способ избежать полного копирования каталога исходного кода, чтобы иметь возможность настраивать некоторые из этих вещей: базу данных, значки, строки пера и т. Д.

Есть ли хороший способ сделать это, не дублируя все?

Это было полезно?

Решение

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

Другие советы

Разумно используйте условную компиляцию. Я не знаю, на каком языке вы работаете, но в C / C ++ условная компиляция выполняется с использованием макро-препроцессора и ifdefs. Вы бы написали код примерно так:

#ifdef FULL_APP
  // unlimited size
  #define SIZE -1
#else
  #define SIZE 100
#endif

При сборке программы вы указываете определения макроса appopriate в командной строке компилятора.

gcc program.cc -o program.o -DFULL_APP

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

Стоит также отметить, что если пользователь решит перейти на полную версию, если у вас нет какого-либо механизма для передачи существующих данных, вы, скорее всего, увидите негативную реакцию ваших пользователей. Если содержимое данных невелико и может быть представлено в основном текстом, я бы предложил реализовать схему URL для его передачи.

Создайте новый проект, а затем укажите его (не создавайте локальную копию) из тех же исходных файлов, что и исходный проект.

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

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

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

Я изучил этот вопрос, и похоже, что вы выполняете " загрузите пробную версию и обновите ее через Интернет " нарушает условия магазина приложений. Похоже, вам действительно понадобятся две отдельные версии приложения в магазине. (возвращаясь к записи Бена Готтлиба). Итак, один источник, два дистрибутива.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top