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

Скрывать и Показывает, что управление Списком Проектов и Целей ( ) в верхнем левом углу редактора проекта позволяет Вам скрывать и показывать список проектов и целей в редакторе проекта. В снимке экрана выведен на экран список. Если список скрыт, можно выбрать проект из управления всплывающим меню, появляющегося рядом с Тем, чтобы скрывать, и Покажите управление Списком Проектов и Целей.
Выберите View> Utilities> Show File Inspector.
В инспекторе файла, в области Identity и Type, вводят новое название проекта в Поле имени.
В снимке экрана, исходном названии проекта StreetScroller заменяется StreetScrollerPro в Поле имени.
Нажмите клавишу ВВОД.

XCode выводит на экран проект — переименовывают диалоговое окно, содержащее все элементы, которые могут быть переименованы в Вашем проекте. Если Вы хотите переименовать только приложение, оставить Ваше приложение выбранным в диалоговом окне и отменить выбор всех других элементов.

Можно выборочно переименовать другие элементы в проекте путем выбора их и отмены выбора других.
Нажмите Rename для выполнения переименовать работы.
Как добавить новый target в iOS-проект (или как сделать lite-версию приложения)
Рано или поздно практически любой уважающий себя iOS-разработчик сталкивается с необходимостью выпуска двух практически идентичных по функционалу приложений, зачастую — обычной и lite-версии своего продукта. Первое, что приходит в голову в таком случае разработчику, не сталкивавшемуся с подобной задачей ранее, — скопировать проект и модифицировать его код. Однако такой подход приведет к необходимости поддерживать уже не один, а два раздельных проекта. Изменения, вносимые в один проект, зачастую необходимо дублировать и в другом проекте. Это неудобно и, более того, опасно: всегда существует вероятность забыть исправить код второго проекта, после изменения первого.
Правильным способом решения этой задачи является добавление дополнительного target в исходный проект. В результате, при сохранение общей кодовой базы исходного проекта разработчик может собирать и старый и новый продукт буквально несколькими кликами. Об этом способе мы и поговорим в данной заметке.
Сперва поговорим о том, что такое этот пресловутый target. Данный объект представляет собой набор инструкций по сборке бинарного файла приложения и включает в себя флаги компиляции, настройки provisioning profile-ов, имя бандла и прочую мета-информацию. Если мы хотим собрать еще одно приложение помимо существующего на основе имеющейся кодовой базы, нам нужно создать новый target.
Как добавить новый target?
Для добавления нового target в проект нужно аккуратно проделать ряд простых действий.
Прежде всего, выберите текущий target проекта (см. рис 1). В нашем примере он имеет имя ContractFinder.

Рис. 1. Текущий target проекта
Далее нажмите на текущем (и пока еще единственном) target правой кнопкой мыши и выберите Duplicate (см. рис. 2). Это создаст копию текущего target-а. Копировать target в нашем случае проще всего, поскольку создаваемый таким образом новый target будет иметь найстройки, практически идентичные исходному. При создании target с нуля процесс будет отличаться.

Рис. 2. Создаем копию target-а проекта
В нашем примере мы создаем новый target для iPhone-приложения, поэтому Xcode спрашивает нас, хотим ли мы продублировать существующий target или же нам надо сделать iPad-версию нашего приложения (см. рис. 3). Выбираем Duplicate Only.

Рис. 3. Выбираем вариант создания копии
В результате этих действий в проекте появится второй target с именем вида Исходное-имя Copy, а также копия plist-а изначального target’а. Файл plist рекомендую сразу переименовать, чтобы не возникало путаницы при добавлении следующего target в этот же проект. Проверявшаяся мною версия Xcode 4.6.3 не умела отслеживать изменения имени plist-файла для нового target, поэтому если при выборе target вы наблюдаете кнопку Choose Info.plist File… как на рис. 4, смело нажимайте эту кнопку и выбирайте переименованный файл.

Рис. 4. Указываем Plist-файл
Поскольку мы копировали существующий target, все настройки нового target будут идентичны исходному target за исключением параметра Product Name. Этот параметр используется для идентификации приложения в Bundle Identifier (см. рис. 5 — в нашем примере ContractFinder-copy). Я настоятельно рекомендую заменять Product Name на что-нибудь более осмысленное, например на Имя-проекта Lite.

Рис. 5. Второй target создан
Для смены Product Name, выберите новый target, перейдите на вкладку Build Settings, найдите пункт Product Name и замените его на нужное значение. В нашем примере (см. рис. 6) мы заменили строку ContractFinder-copy на строку Z-monitor MSK .

Рис. 6. Задаем Product Name
После этой нехитрой операции Bundle Identifier нового target примет корректный вид (см. рис. 7).

Рис. 7. Новый вид Bundle Identifier-а после изменения Product Name
Поскольку по-умолчанию в plist-файле target-а подпись под иконкой приложения берется именно из Product Name, а приложения различаются своими Bundle Identifier-ами, мы получаем не одно, а два разных приложения в одном проекте. На устройстве они будут выглядеть как на рис. 8.

Рис. 8. Два приложения на устройстве
Как написать код, специфичный только для одного target?
Для того, чтобы различать в какой именно версии приложения должен работать тот или иной код, принято использовать условные дерективы компилятора. Для этого мы можем создать флаг компиляции (в нашем примере, он называется MSK_VERSION ) в Build Settings нового target’а как в примере на рис. 9. Чтобы его создать найдите параметр Other C Flags и для каждой из схем сборки (в данном примере это Debug, Distribution Ad Hoc и Release) добавьте строку вида -DNAME_OF_YOUR_FLAG (в нашем примере, повторюсь, это -DMSK_VERSION ). Обратите внимание на то, что в пункте Other C++ Flags добавленный флаг появится самостоятельно, руками его туда вписывать не надо.

Рис. 9. Добавляем флаг компиляции в настройки нового target-а
В нашем примере у схем Distribution Ad Hoc и Release видна строка -DNS_BLOCK_ASSERTI. исключительно потому, что она предшествует строке -DMSK_VERSION ; строка -DMSK_VERSION указана для всех трех схем сборки.
В самом исходном коде для ветвления между собираемыми версиями target-ов при этом необходимо использовать код вида:
#ifdef NAME_OF_YOUR_FLAG // Здесь пишем код для версии приложения с флагом #else // Здесь пишем код для версии приложения без флага #endif
Как добавить ресурсы, специфичные только для одного target?
Если в проект необходимо добавить ресурсы только для одного target-а, необходимо при перетаскивании этих ресурсов в экран Project Navigator-а в окрывшемся диалоговом окне добавления файла в проект установить галочку напротив нужного target-а для которого данный ресурс добавляется.
Если из нового target-а необходимо удалить какие-либо ресурсы, которые были нужны для старого target-а, но не нужны для нового, это легко сделать перейдя ко вкладке Build Phases, развернув список Copy Bundle Resources и удалив ненужные для данного target-а ресурсы.
Под ресурсами в данном пункте подразумеваются не только изображения и файлы sqlite, но и, например, xib-файлы.
Как изменить название новой схемы сборки?
При создании нового target в проекте появится дополнительно еще одна схема сборки, повторяющая изначальную схему с добавлением слова copy в конце названия (см. рис. 10. На схему Kal можно не обращать внимания, она возникла из-за специфики нашего проекта).

Рис. 10. Внешний вид меню схемы
Для переименования схемы необходимо в меню из рис. 10 выбрать пункт Manage Schemes…. После этого в открывшемся окне (см. рис. 11) необходимо найти имя новой схемы с copy на конце, нажать на нем последовательно два раза (первый раз для выбора строки со схемой, второй — для перехода в режим редактирования имени схемы) и переименовать схему.

Рис. 11. Перечень доступных схем
Результат переименования схемы в нашем проекте можно увидеть на рис. 12.

Рис. 12. Измененная новая схема
Как изменить иконку и загрузочный экран (splash screen) для нового target?
Созданный target использует иконку и загрузочные экраны исходного приложения. Едва ли нас это устроит с учетом того, что создаваемая lite-версия, скорее всего, должна отличаться в оформлении от основной версии.
Для изменения иконок и загрузочных экранов прежде всего необходимо подготовить файлы. Я настоятельно рекомендую назвать иконки и загрузочные экраны единообразно с их аналогами для исходного приложения с добавлением какого-либо префикса. В нашем проекте мы использовали префикс Red.
С изменением иконок все достаточно просто — выбираем новый target, идем на вкладку Summary, находим пункт App Icons и перетаскиваем новые иконки прямо поверх старых. Если имена старых и новых иконок отличаются, все проходит гладко (проверял на Xcode 6.4.3; если у вас возникли проблемы, читайте дальше про способ с загрузочными экранами и сделайте с иконками так же), в проекте сохраняются оба набора иконок, иконки правильно назначаются для каждого target-а.
С загрузочными экранами этот номер не проходит, поскольку Xcode имеет привычку переименовывать изображения с загрузочным экраном в нечто вида Default.png. В этом случае при попытке изменить загрузочные экраны тем же способом, что и иконки, приведет к тому, что в исходном target эти изображения изменятся на новые (что не всегда нужно).
Для корректного задания загрузочных экранов я рекомендую для каждого из target-ов добавить в соответствующий Info.plist файл по ключу UILaunchImageFile (см. рис. 13 и 14).

Рис. 13. Внешний вид Raw Key нового target.

Рис. 14. . а это внешний вид того же ключа, но в человекопонятном виде для старого target-а
В зависимости от имени заданного файла Xcode будет искать файлы для ретина-дисплеев по своим внутренним правилам именования загрузочных экранов. Если задаваемый файл имеет имя вида Default.png, то остальные файлы при именовании в стиле Default@2x.png и Default-568h@2x.png будут успешно обнаружены и использованы (см. рис. 15 и 16)

Рис. 15. Иконки и загрузочные экраны старого target

Рис. 16. Иконки и загрузочные экраны нового target
В результате проделанной процедуры новое приложение будет отличаться от старого и на экране мобильного устройства (см. рис. 17).

Рис. 17. Новый вид второго приложения проекта
Заключение
В данной заметке мы рассмотрели практически со всех сторон процесс добавления нового target-а в iOS-проект. Хочу обратить ваше внимание на то, что мы использовали Xcode 4.6.3 и работали с проектам, поддерживающим iOS 4.3 и выше. В более новых версиях Xcode и iOS могут быть незначительные отличия, которые, тем не менее, не будут сильно отличаться от приведенной процедуры.
При возникновении каких-либо ко мне вопросов/комментариев/пожеланий по рассмотренной теме, прошу присылать их мне на электронную почту max[at]maxmikheev.org.
Переименование проект в xcode
Подскажите как переименовать проект — точнее можно даже не весь проект, а только название в меню iphone и при открытии приложения надпись «ghfgfh». Если я в xcode меняю название (в строке справа), то он мне даёт изменить названия, предлагает переименовать некоторые файлы, после чего вместо кнопки запуска приложения в симуляторе появляется шестеренка и не запустить проект
Отслеживать
задан 12 мая 2015 в 10:23
Гошка Тарасов Гошка Тарасов
1,268 4 4 золотых знака 20 20 серебряных знаков 45 45 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Я правильно понимаю, что у Вас xcode 6.3 или 6.3.1? В нем есть баг, при переименовании проекта xcode падает и портит проект. Вот тут https://stackoverflow.com/questions/29824737/xcode-6-3-1-crashes-while-renaming-project/29830678#29830678 обсуждали эту проблему. А так же можете посмотреть тут: https://stackoverflow.com/questions/14385542/project-crashes-after-rename
Думаю, что самый простой вариант, это откатиться на xcode 6.2. Либо можете так же посмотреть вот это решение: https://stackoverflow.com/questions/29692487/xcode-6-3-is-crashing-on-project-rename/29839390#29839390
Отслеживать
ответ дан 14 мая 2015 в 4:37
556 4 4 серебряных знака 10 10 бронзовых знаков
За подпись под иконкой отвечает параметр ‘Bundle display name’ в Info.plist
Его можно локализовать, добавив в проект файл InfoPlist.strings с содержимым:
Отслеживать
ответ дан 15 мая 2015 в 18:36
Sound Blaster Sound Blaster
136 3 3 бронзовых знака
- objective-c
- xcode
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как переименовать проект в Xcode?
Подскажите пожалуйста, как переименовать проект и приложение в Xcode ?
- Вопрос задан более трёх лет назад
- 4772 просмотра
1 комментарий
Оценить 1 комментарий

Lorem Ipsum @GeorgeGeorge Автор вопроса
Оказалось проще простого 🙂 https://developer.apple.com/library/mac/qa/qa1625/.
Решения вопроса 0
Ответы на вопрос 2
Бонус 200 руб всем новым клиентам! VDS — 149 руб
Ответ написан более трёх лет назад

Lorem Ipsum @GeorgeGeorge Автор вопроса
начал читать и понял, что не то( файлов нету у меня таких, как пишет автор статьи

Помог ответ — не забудь лайкнуть
Вроде как двойной медленный клик (клик пауза клик) позволяет в последних xcode переименовывать проект
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Apple Xcode
- +2 ещё
Apple Developer, как сменить санкционный банк на новый?
- 1 подписчик
- 07 нояб. 2023
- 122 просмотра