Изменить, чтобы выделить ранее третий вариант и способ, которым я сейчас решаю эту проблему:
Я бы использовал Source Control для обозначения каждой версии, чтобы можно было легко вернуться к коду для предыдущей версии. Должна быть возможность извлечь отмеченный проект в отдельной папке (для этого я использую Subversion).
Как только у вас есть более старая версия в отдельном каталоге, измените Идентификатор пакета - добавьте имя тега, сборку и т. Д. При изменении идентификатора пакета - убедитесь, что вы не изменили исходный номер, и приложение должно работать с вашим профилем обеспечения. Это предполагает, что у вас есть профиль подстановочного знака, который вы используете для разработки. Если вам нужно включить Nofification или покупки в приложении, это может быть невозможно.
=============================
Предыдущая версия ответа:
У меня есть быстрый трюк, который я использую для хранения версий - я использую разные версии симулятора, и во время разработки я продолжаю перемещаться между разными версиями. Если вы делаете это с помощью симулятора, вы также можете перемещать файлы.
Однако на устройстве вам придется изменить идентификатор пакета, как уже упоминалось. Я бы редактировал версию пакета каждый раз, когда хотел бы заморозить функции и перейти к новой фазе.
Другим вариантом будет использование вашего контроля версий, чтобы пометить каждую из ваших версий, позволяя вам вернуться к предыдущим версиям, когда вам понадобятся отдельные проекты, и затем вы можете изменить идентификатор пакета и установить его как отдельную версию.
Теперь я написал этот ответ, и я думаю, что я начну использовать опцию 3 и пометить мои версии лучше в SVN и использовать этот метод, поскольку он немного менее случайен, чем необходимость помнить, какая версия в каком симуляторе, и это позволит мне развернуть на устройствах тоже.