Установка различных версий того же проекта iPhone?

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

Как у меня может быть несколько версий того же проекта, установленного на устройстве?

11
задан Steph Thirion 20 December 2009 в 20:20
поделиться

5 ответов

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

Например, у вас может быть приложение «com.mycompany.mygame» с названием «MyGame», и ваш сценарий будет создавать такие версии, как «com.mycompany.mygame43» с заголовком «MyGame43».

Однако это может быть побеждено любовью Apple к тому, чтобы все усложнять для разработчиков, также известной как подписание кода. Я лично не занимаюсь разработкой App Store, но я знаю, что профили подготовки могут быть огромной проблемой, и у них могут быть проблемы с этим подходом. Кто знает.

Изменить: думаю, это работает с подписью кода, но не с покупками в приложении.

11
ответ дан 3 December 2019 в 07:38
поделиться

Вам понадобится каждая версия должна иметь свой идентификатор пакета.

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

2
ответ дан 3 December 2019 в 07:38
поделиться

Отредактируйте, чтобы выделить ранее третий вариант и способ решения этой проблемы:

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

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

=============================

Предыдущая версия ответа:

У меня есть небольшой трюк, использовать для хранения версий - я использую разные версии симулятора и во время разработки постоянно перемещаюсь между разными версиями. Если вы делаете это с помощью симулятора, вы также можете перемещать файлы.

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

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

Теперь, когда я написал этот ответ, я думаю, что начну использовать вариант 3 и лучше помечать свои версии в SVN и использовать этот метод, поскольку он немного менее случайный, чем необходимость помнить, какая версия находится в каком симуляторе, и это позволит мне развернуть и на устройствах.

1
ответ дан 3 December 2019 в 07:38
поделиться

Я делаю это и работает на меня: Я использую один и тот же проект с разными названиями продуктов.

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, когда вношу много изменений в папку версии.

Название проекта останется прежним, потому что, если я поменяю, оно не будет работать.

2
ответ дан 3 December 2019 в 07:38
поделиться

(Для 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-

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

0
ответ дан 3 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

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