Как переименовать проект в Xcode?
Подскажите пожалуйста, как переименовать проект и приложение в Xcode ?
- Вопрос задан более трёх лет назад
- 4730 просмотров
1 комментарий
Оценить 1 комментарий

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

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

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

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

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

Можно выборочно переименовать другие элементы в проекте путем выбора их и отмены выбора других.
Нажмите Rename для выполнения переименовать работы.
Переименование проект в xcode
Подскажите как переименовать проект — точнее можно даже не весь проект, а только название в меню iphone и при открытии приложения надпись «ghfgfh». Если я в xcode меняю название (в строке справа), то он мне даёт изменить названия, предлагает переименовать некоторые файлы, после чего вместо кнопки запуска приложения в симуляторе появляется шестеренка и не запустить проект
Отслеживать
задан 12 мая 2015 в 10:23
Гошка Тарасов Гошка Тарасов
1,268 4 4 золотых знака 19 19 серебряных знаков 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.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как добавить новый 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.