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

Xcode: Что такое цель и схема на понятном языке?

Да, название гласит:-) Что они означают на простом английском языке? Я действительно не понимаю объяснений на веб-сайте Apple, и мне нужно переименовать мою цель, и я боюсь, что после этого ничего не будет.

4b9b3361

Ответ 1

Я добавил в Workspace и Project тоже!

  • Рабочая область. Содержит один или несколько проектов. Эти проекты обычно связаны друг с другом.
  • Проект. Содержит код и ресурсы и т.д. (вы будете к этому привыкли!)
  • Цель. Каждый проект имеет одну или несколько целей.
    • Каждая цель определяет список настроек сборки для этого проекта
    • Каждая цель также определяет список классов, ресурсов, пользовательских сценариев и т.д. для включения/использования при создании.
    • Цели обычно используются для разных распределений одного и того же проекта.
      • Например, мой проект имеет две цели: "нормальную" сборку и "офисную" сборку, которая имеет дополнительные функции тестирования и может содержать несколько фоновых музыкальных дорожек и кнопку для изменения дорожки (как это происходит в настоящее время).
      • Вы будете использовать для добавления классов и ресурсов к своей цели по умолчанию при их добавлении.
      • Вы можете выбрать, какие классы/ресурсы будут добавлены к какой цели.
        • В моем примере у меня есть класс "DebugHandler", который добавлен в мою офисную сборку
      • Если вы добавляете тесты, это также добавляет новую цель.
  • Схема. Схема определяет, что происходит, когда вы нажимаете "Build", "Test", "Profile" и т.д.
    • Обычно каждая цель имеет по крайней мере одну схему
    • Вы можете автосоздавать схемы для своих целей, перейдя в схему > "Управление схемами" и нажав "Автосоздать схемы сейчас"

Ответ 2

A target - конечный продукт, созданный при запуске "build" в Xcode. Это может быть приложение, или фреймворк, или статическая библиотека, или пакет unit test. Как бы то ни было, он обычно соответствует одному элементу в папке "встроенные продукты".

A схема представляет собой набор целей, с которыми вы работаете вместе. Он определяет, какие цели используются при выборе различных действий в Xcode (Run, Test, Profile и т.д.). Часто у вас будет только одна схема, в которой используется основная цель приложения для действий Run, Archive и Profile и unit test для тестового действия. Если вы строите два связанных приложения, у вас могут быть две схемы, которые использовали один и тот же набор unit test, но разные целевые приложения.

Основное преимущество схем (введенных в Xcode 4) заключается в том, что они позволяют переключаться между запуском приложения и вашими модульными тестами без необходимости переключения выбранной цели.

Ответ 3

Я визуальный человек, поэтому для объяснения концепции я буду использовать диаграмму.

Если у вас есть несколько целей, они могут быть индивидуально согласованы с действиями Xcode Run, Test, Profile, эта концепция определяет схему

enter image description here

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

Ответ 4

Workspace (.xcworkspace) - это контейнер из нескольких объектов projects. Он был создан как следующий шаг из cross-project references[About]

  • Workspace содержит все schemes из включенного projects
  • Workspace обрабатывает все implicit dependencies[About]

Замечания:

  • Безопасно работать с разными проектами внутри одного workspace и не ловить Couldn't load Project.xcodeproj because it is already opened from another project or workspace
  • Cocoapods[About] работает с workspace, где создает проект Pods

Project (.xcodeproj) - это контейнер для targets и scheme. Он используется для определения среды сборки, инструментов, ресурсов и содержит ссылки на файлы кода.

Target - PBXNativeTarget раздел. Определяет определенный набор параметров сборки, которые сопровождают набор правил сборки.

  • Application targets используются для создания исполняемых двоичных файлов.
  • Library and framework targets сборка двоичных файлов библиотеки кодов.
  • Test - Включает набор для тестирования пользовательского интерфейса iOS и пакет для тестирования iOS Unit
  • Aggregate[About] - у него есть только Run Script фаза сборки или Copy Files фаза сборки. Например. он используется для создания Universal framework или Umbrella framework

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

Dependency - Targets может иметь dependencies. Зависимости - это фреймворки или библиотеки, с которыми связаны наши цели. Эти зависимости могут быть связаны статически или динамически[About] Существует два их типа:

  • Explicit Dependency[About] - Исходный код зависимости находится в целевом объекте того же проекта или вложенного проекта
  • Implicit Dependency[About] - Исходный/закрытый код зависимости находится в целевом проекте, который является частью той же рабочей области.

Библиотека и структура

Источник здесь и здесь