Подтвердить что ты не робот

При дублировании цели в Xcode существует ли способ установить имя, которое будет иметь цель до или когда оно будет создано?

Дублирование цели в Xcode - отличный способ создать несколько продуктов приложения или фреймворка/библиотеки, которые имеют несколько разные функции, используя одну и ту же базу кода в результате условного кода, управляемого переменными среды, заданными в настройках целевой сборки или связанных схемах. Сначала дублируйте свою известную рабочую базовую версию, затем задайте переменные окружения, которые будет использовать каждая цель, затем начните разделять поведение вашего кода с инструкциями inline preprocessor #ifdef.

Однако любая дублируемая цель будет называться "Исходная копия целевого имени". Это можно переименовать, но у info.plist также будет это имя, оно также может появиться в нескольких важных настройках сборки, и это может быть утомительным и внедряющим ошибки процессом для удаления всех ссылок на неинформативную "копию" "версия дублированного имени цели в зависимости от того, как вы это делаете. Когда я создаю рамки iOS, это, по-видимому, особенно подвержено проблемам.

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

Если в вопросе содержится какое-то неправильное предположение, объясняющее, почему эта функция не была включена в Xcode, дайте мне знать. Я использую 4.3.

4b9b3361

Ответ 1

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

Ответ 2

Вы могли бы с некоторым усилием использовать CMake для этого. Это генератор системы сборки.

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

В основном вы пишете файлы CMakeLists.txt в исходном дереве, чтобы определить свои библиотеки и целевые объекты, затем определить исходные файлы и т.д., а затем генерировать проект Xcode каждый раз.

Добавление новой цели будет очень просто:

  • ADD_EXECUTABLE( Target_Name Source_Files )
  • SET_TARGET_PROPERTIES( Target_Name PROPERTIES COMPILE_DEFINITIONS Your_Additional_Defines )
  • Rerun CMake. (Его даже не требуется закрыть проект Xcode)

Недостатки:

  • Устанавливает время.
  • Иногда исследования необходимы, чтобы заставить некоторые вещи работать.
  • Некоторые вещи в настоящее время не поддерживаются с помощью CMake

Ответ 3

В Xcode 6 (не уверен в более ранних версиях) дублирование цели все равно будет генерировать "копировать" добавление и, например, переименовать все локализованные меню. Но оно обратимо, обновляя имя продукта под упаковкой в ​​настройках сборки/Все. Info.plist по-прежнему нужно позаботиться, а также именовать схему.

Ответ 4

Дважды нажмите на цель, чтобы хотя бы переименовать thetarget... все еще хотите переименовать продукт, но это не так важно, если вы можете переименовать все остальное (например, displayname и т.д.))

Ответ 5

  • выберите проект в панели "Навигатор".
  • выберите Target, который вы хотите дублировать.
  • щелкните правой кнопкой мыши и выберите "Дублировать"
  • Переименуйте цель в XCode: щелкните по выбранному целевому и встроенному редактированию.
  • Откройте терминал и перейдите в каталог/папку проекта
  • Запустите svn status, чтобы увидеть изменения, которые XCode только что сделал.
  • XCode создал новый файл Infocopy.plist и добавил его под управлением версиями, если вы его используете. Обычно вы хотите выбрать другое имя, чтобы выполнить следующие действия:
  • Отменить дополнение к версии: $ > svn revert Infocopy.plist
  • Переименуйте его: $ > mv Infocopy.plist YourNameInfo.plist
  • Добавьте его в управление версиями: $ > svn add YourNameInfo.plist
  • Задайте новое имя в новых настройках целевой сборки с именем "Файл Info.plist"
  • Правильно переименуйте целевой файл: $ > mv OrigTargetCopy.xcscheme YourTargetName.xcscheme
  • Добавить новый целевой файл под управлением версии: $ > svn add YourTargetName.xcscheme
  • Переименуйте свой продукт в новые целевые настройки сборки с именем "Имя продукта"
  • Скорее всего, вам также захочется установить новые макросы "Preprocessor macros" для вашей новой цели.
  • Задайте правильные значения your YourNameInfo.plist
  • Задайте целевое назначение целевых файлов. Обычно YourNameInfo.plist должен быть частью только вашей новой цели. Может быть много других похожих файлов (значок, заставка, другая графика и т.д.).