Да, название говорит это :-) Что они означают на простом английском языке? Я действительно не понимаю объяснения на веб-сайте Apple, и мне нужно переименовать свою цель, и я боюсь, что после этого ничего не получится ..
Рабочая область - содержит один или несколько проектов . Эти проекты обычно связаны друг с другом
Проект - Содержит код и ресурсы и т. Д. (Вы будете привыкать к этому!)
Цель - у каждого проекта есть одна или несколько целей.
Каждая цель определяет список параметров сборки для этого проекта.
Каждая цель также определяет список классов, ресурсов, пользовательских сценариев и т. Д. Для включения / использования при сборке.
Цели обычно используются для разных дистрибутивов одного и того же проекта.
Например, у моего проекта есть две цели: «нормальная» сборка и «офисная» сборка, которая имеет дополнительные функции тестирования и может содержать несколько фоновых музыкальных треков и кнопку для изменения трека (как в настоящее время).
Вы будете использовать для добавления классов и ресурсов к вашей цели по умолчанию по мере их добавления.
Вы можете выбрать, какие классы / ресурсы будут добавлены к какой цели.
В моем примере у меня есть класс "DebugHandler", который добавляется в мою офисную сборку
Если вы добавите тесты, это также добавит новую цель.
Схема - схема определяет, что происходит при нажатии «Построить», «Тест», «Профиль» и т. Д.
Обычно каждая цель имеет хотя бы одну схему
Вы можете автоматически создать схемы для ваших целей, перейдя в Схема> Управление схемами и нажав «Создать схемы сейчас»
Давайте попробуем, если я правильно понял ... Я программирую приложение и ставлю две цели. Тот, который я загружу в магазин приложений, и тот, в котором я уже разрабатываю следующую версию того же приложения. И в схемах я делаю, например, одну схему в обеих целей для запуска и одну схему для отладки? Но зачем мне для этого разные схемы? Я не понял преимущества того, что Би Джей Гомер ..
MichiZH
FWIW, я не использую разные схемы для выпуска и отладки, если я не добавляю дополнительные функции отладки, как я описал в своем ответе.
Джеймс Вебстер
2
Отличное объяснение, братан! ! !
Сагар Калатхил
6
что ты имеешь в виду, что в твоем офисе внизу есть музыкальная кнопка. Есть ли в вашем приложении дополнительный код, который активируется только в офисной сборке, или музыка запускается на вашем Mac. Извините, я в замешательстве
3366784
Этот вид определяет, какие вещи составляют каждую концепцию, но не цель каждого элемента. Для меня это то, о чем спрашивал ОП.
О'Руни
67
Целью является конечным продуктом , созданный путем запуска «сборки» в Xcode. Это может быть приложение, или фреймворк, или статическая библиотека, или пакет модульных тестов. Что бы это ни было, оно обычно соответствует отдельному элементу в папке «встроенные продукты».
Схема представляет собой совокупность целей , которые вы работаете с вместе. Он определяет, какие цели используются, когда вы выбираете различные действия в XCode (Run, Test, Profile и т. Д.). Часто у вас будет только одна схема, в которой используется основная цель приложения для действий Run, Archive и Profile, а также Цель модульного теста для действия Тест. Если вы строите два связанных приложения, у вас могут быть две схемы, в которых используется один и тот же пакет модульного тестирования, но разные цели приложения.
Основное преимущество схем (представленных в Xcode 4) заключается в том, что они позволяют переключаться между запуском приложения и юнит-тестами без необходимости переключения выбранной цели.
Я визуальный человек, поэтому для объяснения концепции я буду использовать диаграмму.
Когда у вас есть несколько целей, они могут быть сопоставлены с действиями Xcode Run, Test, Profile, эта концепция определяет схему
Мишень представляет собой версию вашего проекта , то есть цели немного отличаются в классах и ресурсах для использования во время построено. Проект может иметь несколько настроек времени для отдельных требований распространения.
Эта диаграмма кажется неправильной. Схема должна быть привязана к конкретной цели, я не вижу, где внутри схемы вы можете иметь несколько целей.
Благо
6
@ Бун Нет, небрежно, выбор правильный. В редакторе схем щелкните элемент «build» слева. В правой части нажмите «+», и вы сможете добавить больше целей к этой схеме. Отметьте флажки по желанию. Исполняемые файлы этих целей затем доступны в других действиях (Выполнить, Профиль и т. Д.) В выпадающем списке исполняемых файлов.
occulus
Это хорошо, но отсутствует схема конфигурации сборки. Я рассматриваю схему как совокупность того, как действия (Run, Test, Profile) соответствуют комбинации целей и конфигураций сборки (debug, release, qa, prod и т. Д.).
Стив Мозер
3
Workspace( .xcworkspace) - это контейнер из нескольких projects. Он был создан как следующий шаг cross-project references[О]
Workspaceсодержит все schemesиз включенногоprojects
Workspaceобрабатывает все implicit dependencies[О]
Замечания:
Работать с разными проектами внутри одинаково workspaceи не ловитьCouldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods[О] работа сworkspaceгде создает Podsпроект
Project( .xcodeproj) - это контейнер для targetsи scheme. Он определяет файлы кода, ресурсы ...
Target- PBXNativeTargetраздел. Определяет определенный набор параметров сборки, которые генерируют:
Application target
Library and framework targets
Test
Aggregate[О] . Например, он используется для созданияUniversal frameworkилиUmbrella framework
Scheme- Project'sконфигурация для действий в Xcode: запуск , тестирование , профиль , анализ и архивирование . Schemaможно поделиться, что поможет вам в CI, Carthage... и расположен:
Dependency- Targetsможет иметь dependencies. Зависимость является источником ссылки против. Эти зависимости могут быть связаны статически или динамически. [About] Существует два типа:
Explicit Dependency[About] - Исходный код зависимости, находящейся в том же проекте или во вложенном проекте.
Implicit Dependency[О программе] - исходный / закрытый код зависимости, который находится в проекте и является частью той же рабочей области.
Ответы:
Я добавил в Workspace и Project тоже!
источник
Целью является конечным продуктом , созданный путем запуска «сборки» в Xcode. Это может быть приложение, или фреймворк, или статическая библиотека, или пакет модульных тестов. Что бы это ни было, оно обычно соответствует отдельному элементу в папке «встроенные продукты».
Схема представляет собой совокупность целей , которые вы работаете с вместе. Он определяет, какие цели используются, когда вы выбираете различные действия в XCode (Run, Test, Profile и т. Д.). Часто у вас будет только одна схема, в которой используется основная цель приложения для действий Run, Archive и Profile, а также Цель модульного теста для действия Тест. Если вы строите два связанных приложения, у вас могут быть две схемы, в которых используется один и тот же пакет модульного тестирования, но разные цели приложения.
Основное преимущество схем (представленных в Xcode 4) заключается в том, что они позволяют переключаться между запуском приложения и юнит-тестами без необходимости переключения выбранной цели.
источник
Я визуальный человек, поэтому для объяснения концепции я буду использовать диаграмму.
Когда у вас есть несколько целей, они могут быть сопоставлены с действиями Xcode Run, Test, Profile, эта концепция определяет схему
Мишень представляет собой версию вашего проекта , то есть цели немного отличаются в классах и ресурсах для использования во время построено. Проект может иметь несколько настроек времени для отдельных требований распространения.
источник
Workspace
(.xcworkspace
) - это контейнер из несколькихprojects
. Он был создан как следующий шагcross-project references
[О]Workspace
содержит всеschemes
из включенногоprojects
Workspace
обрабатывает всеimplicit dependencies
[О]Замечания:
workspace
и не ловитьCouldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods
[О] работа сworkspace
где создаетPods
проектProject
(.xcodeproj
) - это контейнер дляtargets
иscheme
. Он определяет файлы кода, ресурсы ...Target
-PBXNativeTarget
раздел. Определяет определенный набор параметров сборки, которые генерируют:Application target
Library and framework targets
Test
Aggregate
[О] . Например, он используется для созданияUniversal framework
илиUmbrella framework
Scheme
-Project's
конфигурация для действий в Xcode: запуск , тестирование , профиль , анализ и архивирование .Schema
можно поделиться, что поможет вам в CI,Carthage
... и расположен:Dependency
-Targets
может иметьdependencies
. Зависимость является источником ссылки против. Эти зависимости могут быть связаны статически или динамически. [About] Существует два типа:Explicit Dependency
[About] - Исходный код зависимости, находящейся в том же проекте или во вложенном проекте.Implicit Dependency
[О программе] - исходный / закрытый код зависимости, который находится в проекте и является частью той же рабочей области.[Словарь]
источник