Вопрос

Есть ли способ заставить XCode хорошо играть с общими папками и позволить нескольким людям одновременно работать над приложением для iPhone? Или нам нужно переключиться на что-то более похожее на SubEthaEdit или другой инструмент для совместной работы в реальном времени?

Это было полезно?

Решение

Xcode очень плохо играет с файловой системой. При управлении проектом у вас есть два варианта: добавить папки как группу или как ссылки на папки.

Если вы добавите группу, то папка будет зеркально отображена в Xcode, но группа не будет синхронизирована с файловой системой, то есть вы можете перемещать объекты внутри группы, удалять группу, не трогать FS, наоборот, заставит Xcode потерять файлы.

Второй вариант, чтобы добавить ссылку на папку, звучит очень мило, но полностью прослушивается. Ссылки на папки могут обновляться некорректно, изменения не обнаруживаются в папках (если вы добавите ссылку на папку «Изображения» к своим ресурсам и обновите содержимое, ваши ресурсы не будут обновлены при следующей сборке, вам придется очистить и перестроить).

Вот почему вы не должны использовать XCode (мы используем vim + SCons и очень довольны этим), или вам нужно использовать SCM (SCM может быть связан с другими инструментами, вы ДОЛЖНЫ использовать SCM в любом случае) .

Что касается SCM, я рекомендую Mercurial, но есть и SVN, и Git, и много других, я немного порекомендую вам Google и выскажите свое мнение.

Другие советы

Если вы используете SCM, лучший подход на данный момент - это проверить в project.pbxproj  файл (внутри вашего пакета .xcodeproj). В основном это просто отлично, иногда вам нужно вручную, но в этих случаях 90% времени вы просто разрешаете обе стороны слияния.

Мой файл .gitignore выглядит следующим образом:

# xcode noise
build/*
*.pbxuser
*.mode1v3
*.perspectivev3
*~
*.mode2v3

Вы можете использовать аналогичный набор игнорируемых директив для других систем SCM.

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

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

Получите SCM и попросите всех проверить свой код в своей личной папке.

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

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

Таким образом, у вас есть один программист, который размещает проект Xcode и открывает исходные файлы в subethaedit. Другие программисты затем входят в файл через subethaedit. Затем хостинг-программист компилирует код в своем локальном Xcode.

Однако, как отмечалось выше в комментарии Rudedog, если вы просто хотите, чтобы несколько человек работали над одним проектом, но над разными файлами, вам следует использовать инструмент управления кодом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top