Установка разных версий одного и того же проекта iPhone? - PullRequest
11 голосов
/ 19 декабря 2009

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

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

Ответы [ 5 ]

11 голосов
/ 15 февраля 2010

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

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

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

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

2 голосов
/ 18 февраля 2010

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

1. Изменение названия продукта

Панель XCode Group & Files -> Targets -> projectName -> (Ctrl + Click) Получить информацию -> Build -> Product Name.

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

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

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

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

2 голосов
/ 15 февраля 2010

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

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

1 голос
/ 17 февраля 2010

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

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

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

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

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

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

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

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

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

0 голосов
/ 21 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...