Установка разных версий одного и того же проекта 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 всякий раз, когда я достигаю вехи. Тогда, если мне нужно вернуться и ссылаться на него или запустить его, я могу просто извлечь его и скомпилировать, и у меня есть две отдельные версии, с которыми я могу переключаться между ними. Это не самое элегантное решение, но его довольно легко сделать, и вы можете бросить все резервные копии и внешний жесткий диск для безопасного хранения.