В то время как я моделирую игры, я часто должен возвращаться, чтобы соответствовать более старым версиям, лучше получить ощущение того, если я на правильном пути или нет. Но это - долгий процесс для проверки старой версии и реэкспорта каждый раз, я должен проверить определенную версию. Это было бы настолько более гладко, если я мог бы просто запустить различные версии.
Как у меня может быть несколько версий того же проекта, установленного на устройстве?
Если вы дадите программам разные идентификаторы пакетов, их можно будет установить на одном устройстве. Возможно, добавьте новую цель сборки, которая добавляет случайное число (или версию сборки, или версию svn и т. Д.) В конец идентификатора пакета (и, возможно, имени приложения), тогда вы можете установить несколько версий одновременно.
Например, у вас может быть приложение «com.mycompany.mygame» с названием «MyGame», и ваш сценарий будет создавать такие версии, как «com.mycompany.mygame43» с заголовком «MyGame43».
Однако это может быть побеждено любовью Apple к тому, чтобы все усложнять для разработчиков, также известной как подписание кода. Я лично не занимаюсь разработкой App Store, но я знаю, что профили подготовки могут быть огромной проблемой, и у них могут быть проблемы с этим подходом. Кто знает.
Изменить: думаю, это работает с подписью кода, но не с покупками в приложении.
Вам понадобится каждая версия должна иметь свой идентификатор пакета.
Вы можете создать сценарий, который редактирует ваш Info.plist, чтобы добавить номер версии к идентификатору пакета и создать настраиваемую фазу сборки для запуска сценария за вас ... или вы можете просто отредактировать идентификатор пакета вручную.
Отредактируйте, чтобы выделить ранее третий вариант и способ решения этой проблемы:
Я бы использовал Source Control, чтобы пометить каждую версию, чтобы она легко вернуться к коду предыдущей версии. Должна быть возможность извлекать помеченный проект в отдельной папке (для этого я использую Subversion).
После того, как у вас будет старая версия в отдельном каталоге, измените идентификатор пакета - добавьте имя тега, сборку и т. Д. При изменении идентификатора пакета - убедитесь, что вы не изменили исходный номер, и приложение должно по-прежнему работать. с вашим профилем обеспечения. Предполагается, что у вас есть профиль подготовки с подстановочными знаками, который вы используете для разработки. Если вам нужно включить уведомления или покупки в приложении, это может оказаться невозможным.
=============================
Предыдущая версия ответа:
У меня есть небольшой трюк, использовать для хранения версий - я использую разные версии симулятора и во время разработки постоянно перемещаюсь между разными версиями. Если вы делаете это с помощью симулятора, вы также можете перемещать файлы.
Однако на устройстве вам придется изменить идентификатор пакета, как указано. Я бы редактировал версию пакета каждый раз, когда хотел бы заморозить функции и перейти к новому этапу.
Другой вариант - использовать систему управления версиями, чтобы пометить каждую из ваших версий, что позволит вам вернуться к предыдущим версиям как отдельным проектам, если вам это нужно, и вы затем сможете изменить идентификатор пакета и установить как отдельную версию.
Теперь, когда я написал этот ответ, я думаю, что начну использовать вариант 3 и лучше помечать свои версии в SVN и использовать этот метод, поскольку он немного менее случайный, чем необходимость помнить, какая версия находится в каком симуляторе, и это позволит мне развернуть и на устройствах.
Я делаю это и работает на меня: Я использую один и тот же проект с разными названиями продуктов.
1. Изменение названия продукта
Панель XCode Group & Files -> Targets -> projectName -> (Ctrl + Click) Get Info -> Build -> Product Name.
Это позволяет мне создавать множество приложений (с разными именами в зависимости от версии, например, AppName1.1, AppName1.2) на одном устройстве, используя один и тот же профиль обеспечения.
2. Для каждого проекта я создаю папку с ProductName только в целях идентификации.
Итак, проект с именем продукта AppName1.1 будет содержаться в папке AppName1.1 и т. Д. Я включаю небольшой файл readme.txt, когда вношу много изменений в папку версии.
Название проекта останется прежним, потому что, если я поменяю, оно не будет работать.
(Для C) Expert C Programming: Deep C secrets без сомнения.
-121--3208634- Это делается с помощью метода clean
в форме. Однако для foo _ date
и foo _ time
необходимо установить значение required = False
, поскольку clean
вызывается только после проверки каждого поля (см. также документацию ).
class FooForm(forms.Form)
# your field definitions
def clean(self):
data = self.cleaned_data
if data.get('foo_timestamp', None) or (data.get('foo_date', None) and data.get('foo_time', None)):
return data
else:
raise forms.ValidationError('Provide either a date and time or a timestamp')
-121--2500323- Я просто сжимаю весь свой проект в застежка -молния всякий раз, когда достигаю вехи. Затем, если мне нужно вернуться и сослаться на него или запустить его, я могу просто извлечь его и скомпилировать, и у меня есть две отдельные версии, между которыми я могу переключиться. Это не самое элегантное решение, но это довольно легко сделать, и вы можете бросить все резервные копии на и внешний жесткий диск для безопасного хранения.