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

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

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

Ответ 1

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

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

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

Изменить: предположим, что он работает с подписями кода, но не в приложениях.

Ответ 2

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

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

Ответ 3

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

1.Выберите название продукта

Панель "Группы и файлы XCode" → "Цели" → имя_проекта → (Ctrl + Click) Получить информацию → Создать → Название продукта.

Это позволяет мне создавать множество приложений (с разными именами в соответствии с версией, например AppName1.1, AppName1.2) на том же устройстве, используя тот же профиль подготовки.

2. Для каждого проекта я создаю папку с ProductName только для целей идентификации.

Итак, проект с именем продукта AppName1.1 будет содержаться в папке AppName1.1 и т.д. Я включаю небольшой файл readme.txt, когда делаю много изменений в папке версии.

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

Ответ 4

Изменить, чтобы выделить предыдущий третий вариант и способ управления этой проблемой:

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

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

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

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

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

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

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

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

Ответ 5

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