是的,标题说:-)他们是什么意思,在简单的英语语言?我真的不明白苹果网站上的解释,我需要重命名我的目标,我担心没有任何工作之后...
qxsslcnc1#
我也在工作区和项目中添加了!
*工作区-包含一个或多个 * 项目 *。这些项目通常相互关联*项目-包含代码和资源等(您将习惯这些!)*目标-每个项目都有一个或多个目标。
bxjv4tth2#
target是通过在Xcode中运行“build”创建的最终产品。它可能是一个应用程序、一个框架、一个静态库或一个单元测试包。无论它是什么,它通常对应于“built products”文件夹中的一个项目。scheme表示您一起使用的目标的集合。它定义了当您在Xcode中选择各种操作时使用哪些目标(运行、测试、分析等)通常,您只有一个方案,该方案将主应用目标用于运行、存档和分析操作,并将单元测试目标用于测试操作。您可能有两个使用相同单元测试包但应用程序目标不同的方案。
方案(在Xcode 4中引入)的主要好处是,它们允许您在运行应用和单元测试之间切换,而无需切换所选目标。
kuarbcqp3#
我是一个视觉型的人,因此我将用一个图表来解释这个概念。当您有多个目标时,它们可以与Xcode的Run、Test、Profile操作一一匹配,此概念定义了一个方案
目标是您的项目的一个版本,即目标在构建时使用的类和资源方面略有不同。一个项目可以有多个构建时设置,以满足不同的分发要求。
ctzwtxfj4#
Xcode结构
Workspace -> Project -> Target -> Dependency -> Scheme -> Action -> Build Configuration -> Build Configuration File(.xcconfig)
Workspace(.xcworkspace)-是多个projects的容器。它是作为cross-project referencesAbout(https://stackoverflow.com/a/59218997/4770877)的下一步创建的
Workspace
.xcworkspace
projects
cross-project references
schemes
implicit dependencies
观察结果:
workspace
//if you try to open two projects on two Xcode instances Couldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods
Pods
Project
.xcodeproj
targets
scheme
此外,Projects还管理Build Configuration(由scheme更改)和Build Configuration FileAbout(https://stackoverflow.com/a/64266553/4770877)您可以将现有的Project转换为Workspace
Projects
Build Configuration
Build Configuration File
File -> Save As Workspace...
Workspace vs Project(https://stackoverflow.com/a/59236567/4770877)
Target-PBXNativeTarget节。定义一组特定的生成设置,用于生成:
Target
PBXNativeTarget
Library and framework targets
Test
Aggregate
Universal framework
Umbrella framework
Scheme
包含操作(运行、测试、分析、分析、存档)+配置(附加参数、Build Configuration(https://stackoverflow.com/a/64266553/4770877)、诊断)方案可以共享,这有助于您进行CI,CarthageExample(https://stackoverflow.com/a/61408166/4770877)...并位于:
Carthage
<project_path>/<project_name>.xcodeproj/xcshareddata/xcschemes
Dependency-Targets可以具有dependencies。依赖项是针对的源链接。这些依赖项可以静态或动态链接About(https://stackoverflow.com/a/59216858/4770877)它们有两种类型:
Dependency
Targets
dependencies
Explicit Dependency
Implicit Dependency
Vocabulary(https://stackoverflow.com/a/59216151/4770877)
huus2vyu5#
tldr;目标包含构建模块/最终产品/应用的说明,例如构建watchOS应用和iOS应用的说明。方案知道如何响应某些 * 操作 *,例如构建操作或测试操作或存档操作。确保你看到了WWDC16 video — Introduction to Xcode [45:13]。如果你想获得更深的知识,那么就看完整的视频。这个视频很简单,但非常基础。我的答案基本上是关闭的。方案方案是指定要运行的内容的方式,它还包含有关要如何运行方案的信息。例如,我可能有一个包含iOS应用程序和Watch应用程序的项目,在这种情况下,我将有一个方案运行iOS应用程序,一个方案运行Watch应用程序Run将在调试器中运行我的应用程序。测试将运行我的测试。Profile将在仪器中运行我的应用程序,这样我就可以测量它的性能。分析将运行Xcode的静态分析器,并帮助捕捉我可能会错过的问题。最后,Archive(存档)操作将构建我的应用以供发布,并将其放入存档中,然后我可以将其分发给我的测试人员或应用商店,或保存以供未来的崩溃日志去符号化或符号化。项目项目是一个文稿,用于在Xcode中组织代码和资源。您可以引用光盘上的源代码文件和资源文件、实际将这些文件构建到应用等产品中的目标、配置目标如何构建其产品的构建设置以及配置如何对目标执行操作(如运行)的方案。现在,要访问项目设置,请在导航器中选择项目,选择编辑器顶部的弹出窗口,然后在那里选择项目。目标您可以引用光盘上的源代码文件和资源文件、将这些文件实际构建到产品(如您的应用)中的目标、配置目标如何构建其产品的构建设置以及配置您如何对目标执行操作(如运行[测试,构建])的方案。目标包含构建应用或框架等内容的指令。你的目标生产的东西叫做它的产品,你的目标用来构建它的产品的一系列步骤叫做构建阶段。最后,目标具有构建设置,用于配置其构建产品的方式。现在,需要注意的一点是,项目和目标都有Build设置,目标继承在项目级别设置的值,但可以用特定于目标的值覆盖它们。目标的构建阶段会首先构建依赖项,编译目标中的源文件,并将目标链接到库和框架。总结一下:
帮助将一组文件放在一起以构建/运行产品/模块/包
比如一个应用可以有一个iOS目标沿着一个watchOS目标,或者只有一个iOS目标,或者一个iOS目标和一个测试目标,等等。如果你进入目标的Build Phase〉〉Compile Sources,你会看到为该目标构建的每个文件。
要明确引用Apple文档:目标指定要生成的产品,并包含从项目或工作区中的一组文件生成产品的说明。目标定义单个产品;它将生成产品所需的输入(源文件和处理这些源文件的指令)组织到生成系统中。项目可以包含一个或多个目标,每个目标生成一个产品。构建产品的说明采用构建设置和构建阶段的形式,您可以在Xcode项目编辑器中检查和编辑它们。目标继承项目构建设置,但您可以通过在目标级别指定不同的设置来覆盖任何项目设置。一次只能有一个活跃的目标; Xcode方案指定活动目标。
一个目标及其创建的产品可以与另一个目标相关。如果一个目标需要另一个目标的输出来构建,则第一个目标被称为依赖于第二个目标。如果两个目标位于同一个工作区中,Xcode可以发现依赖关系,在这种情况下,它按照所需的顺序构建产品。这种关系称为隐式依赖关系。您还可以在构建设置中指定显式目标相关性,并且可以指定Xcode可能期望具有隐式相关性的两个目标实际上并不相关。例如,您可以在同一个工作区中构建一个库和一个链接到该库的应用程序。Xcode可以发现此关系并首先自动构建库。但是,如果您确实想要链接到工作区中构建的库版本之外的库版本,则可以在构建设置中创建显式依赖关系,以覆盖此隐式依赖关系。
一个给定的目标可以经历不同的行动。
您可以有一个启用所有诊断的方案(这会使调试变慢)与一个不启用任何诊断的方案。或者,可以有一个运行某些性能相关测试的方案与一个同时运行单元测试和性能测试的方案。您可以编辑方案,使其执行以下操作:
有关详细信息,请参阅Customizing the build schemes for a project综合起来看:点击“运行”后,Xcode将查看所选的 scheme。它将找到其关联的 * 目标 *。使用该目标的 * 构建阶段 * 及其 * 构建设置 *(任何未被目标设置覆盖的 * 项目设置 * 都将被包括在内)将产品构建到所选的目标中(目标可以是iPhone模拟器或物理iPhone或watchOS等)。
再次观看WWDC视频!
tvokkenx6#
我的看法:
目标--一个较低的抽象--各种构建。每个目标都有自己的构建设置(所以如果你拆分成几个目标,请为每个目标单独处理那个巨大的工作表)。目标有一个包含/排除文件的方便方法,所以你可以在每个文件的基础上有效地配置构建。方案-一种更高的抽象概念--通过各种部署方式(运行、测试、存档)指导目标。具有通过环境参数配置生成的一般方法,但采用目标中的生成设置。创建/编辑/删除方案比创建/编辑/删除目标便宜且容易。
您可以使用多个方案以多种不同的方式引导一个目标。
6条答案
按热度按时间qxsslcnc1#
我也在工作区和项目中添加了!
*工作区-包含一个或多个 * 项目 *。这些项目通常相互关联
*项目-包含代码和资源等(您将习惯这些!)
*目标-每个项目都有一个或多个目标。
*方案-方案定义当您按下“构建”、“测试”、“配置文件”等时会发生什么。
bxjv4tth2#
target是通过在Xcode中运行“build”创建的最终产品。它可能是一个应用程序、一个框架、一个静态库或一个单元测试包。无论它是什么,它通常对应于“built products”文件夹中的一个项目。
scheme表示您一起使用的目标的集合。它定义了当您在Xcode中选择各种操作时使用哪些目标(运行、测试、分析等)通常,您只有一个方案,该方案将主应用目标用于运行、存档和分析操作,并将单元测试目标用于测试操作。您可能有两个使用相同单元测试包但应用程序目标不同的方案。
方案(在Xcode 4中引入)的主要好处是,它们允许您在运行应用和单元测试之间切换,而无需切换所选目标。
kuarbcqp3#
我是一个视觉型的人,因此我将用一个图表来解释这个概念。
当您有多个目标时,它们可以与Xcode的Run、Test、Profile操作一一匹配,此概念定义了一个方案
目标是您的项目的一个版本,即目标在构建时使用的类和资源方面略有不同。一个项目可以有多个构建时设置,以满足不同的分发要求。
ctzwtxfj4#
Xcode结构
Workspace
(.xcworkspace
)-是多个projects
的容器。它是作为cross-project references
About(https://stackoverflow.com/a/59218997/4770877)的下一步创建的Workspace
包含所包含projects
中的所有schemes
Workspace
处理所有implicit dependencies
About(https://stackoverflow.com/a/59218952/4770877)观察结果:
workspace
中处理不同的项目是安全的,并且不会Cocoapods
About(https://stackoverflow.com/a/59218904/4770877)使用workspace
在其中创建Pods
项目Project
(.xcodeproj
)-它是targets
和scheme
的容器。它定义代码文件、资源...此外,
Projects
还管理Build Configuration
(由scheme
更改)和Build Configuration File
About(https://stackoverflow.com/a/64266553/4770877)您可以将现有的
Project
转换为Workspace
Workspace vs Project(https://stackoverflow.com/a/59236567/4770877)
Target
-PBXNativeTarget
节。定义一组特定的生成设置,用于生成:Library and framework targets
个Test
Aggregate
About(https://stackoverflow.com/a/59215042/4770877)。例如,它用于创建Universal framework
或Umbrella framework
Scheme
包含操作(运行、测试、分析、分析、存档)+配置(附加参数、Build Configuration(https://stackoverflow.com/a/64266553/4770877)、诊断)
方案可以共享,这有助于您进行CI,
Carthage
Example(https://stackoverflow.com/a/61408166/4770877)...并位于:Dependency
-Targets
可以具有dependencies
。依赖项是针对的源链接。这些依赖项可以静态或动态链接About(https://stackoverflow.com/a/59216858/4770877)它们有两种类型:Explicit Dependency
About(https://stackoverflow.com/a/59219025/4770877)-位于同一项目或嵌套项目中的依赖项的源代码Implicit Dependency
About(https://stackoverflow.com/a/59218952/4770877)-相依性的原始程式码/关闭程式码,位于属于相同工作区一部分的项目中。Vocabulary(https://stackoverflow.com/a/59216151/4770877)
huus2vyu5#
tldr;目标包含构建模块/最终产品/应用的说明,例如构建watchOS应用和iOS应用的说明。方案知道如何响应某些 * 操作 *,例如构建操作或测试操作或存档操作。
确保你看到了WWDC16 video — Introduction to Xcode [45:13]。如果你想获得更深的知识,那么就看完整的视频。这个视频很简单,但非常基础。我的答案基本上是关闭的。
方案
方案是指定要运行的内容的方式,它还包含有关要如何运行方案的信息。
例如,我可能有一个包含iOS应用程序和Watch应用程序的项目,在这种情况下,我将有一个方案运行iOS应用程序,一个方案运行Watch应用程序
Run将在调试器中运行我的应用程序。
测试将运行我的测试。
Profile将在仪器中运行我的应用程序,这样我就可以测量它的性能。
分析将运行Xcode的静态分析器,并帮助捕捉我可能会错过的问题。
最后,Archive(存档)操作将构建我的应用以供发布,并将其放入存档中,然后我可以将其分发给我的测试人员或应用商店,或保存以供未来的崩溃日志去符号化或符号化。
项目
项目是一个文稿,用于在Xcode中组织代码和资源。
您可以引用光盘上的源代码文件和资源文件、实际将这些文件构建到应用等产品中的目标、配置目标如何构建其产品的构建设置以及配置如何对目标执行操作(如运行)的方案。
现在,要访问项目设置,请在导航器中选择项目,选择编辑器顶部的弹出窗口,然后在那里选择项目。
目标
您可以引用光盘上的源代码文件和资源文件、将这些文件实际构建到产品(如您的应用)中的目标、配置目标如何构建其产品的构建设置以及配置您如何对目标执行操作(如运行[测试,构建])的方案。目标包含构建应用或框架等内容的指令。
你的目标生产的东西叫做它的产品,你的目标用来构建它的产品的一系列步骤叫做构建阶段。
最后,目标具有构建设置,用于配置其构建产品的方式。
现在,需要注意的一点是,项目和目标都有Build设置,目标继承在项目级别设置的值,但可以用特定于目标的值覆盖它们。
目标的构建阶段会首先构建依赖项,编译目标中的源文件,并将目标链接到库和框架。
总结一下:
目标
帮助将一组文件放在一起以构建/运行产品/模块/包
比如一个应用可以有一个iOS目标沿着一个watchOS目标,或者只有一个iOS目标,或者一个iOS目标和一个测试目标,等等。
如果你进入目标的Build Phase〉〉Compile Sources,你会看到为该目标构建的每个文件。
要明确引用Apple文档:
目标指定要生成的产品,并包含从项目或工作区中的一组文件生成产品的说明。目标定义单个产品;它将生成产品所需的输入(源文件和处理这些源文件的指令)组织到生成系统中。项目可以包含一个或多个目标,每个目标生成一个产品。
构建产品的说明采用构建设置和构建阶段的形式,您可以在Xcode项目编辑器中检查和编辑它们。目标继承项目构建设置,但您可以通过在目标级别指定不同的设置来覆盖任何项目设置。一次只能有一个活跃的目标; Xcode方案指定活动目标。
一个目标及其创建的产品可以与另一个目标相关。如果一个目标需要另一个目标的输出来构建,则第一个目标被称为依赖于第二个目标。如果两个目标位于同一个工作区中,Xcode可以发现依赖关系,在这种情况下,它按照所需的顺序构建产品。这种关系称为隐式依赖关系。您还可以在构建设置中指定显式目标相关性,并且可以指定Xcode可能期望具有隐式相关性的两个目标实际上并不相关。例如,您可以在同一个工作区中构建一个库和一个链接到该库的应用程序。Xcode可以发现此关系并首先自动构建库。但是,如果您确实想要链接到工作区中构建的库版本之外的库版本,则可以在构建设置中创建显式依赖关系,以覆盖此隐式依赖关系。
方案
一个给定的目标可以经历不同的行动。
您可以有一个启用所有诊断的方案(这会使调试变慢)与一个不启用任何诊断的方案。或者,可以有一个运行某些性能相关测试的方案与一个同时运行单元测试和性能测试的方案。您可以编辑方案,使其执行以下操作:
有关详细信息,请参阅Customizing the build schemes for a project
综合起来看:
点击“运行”后,Xcode将查看所选的 scheme。它将找到其关联的 * 目标 *。使用该目标的 * 构建阶段 * 及其 * 构建设置 *(任何未被目标设置覆盖的 * 项目设置 * 都将被包括在内)将产品构建到所选的目标中(目标可以是iPhone模拟器或物理iPhone或watchOS等)。
再次观看WWDC视频!
tvokkenx6#
我的看法:
目标--一个较低的抽象--各种构建。每个目标都有自己的构建设置(所以如果你拆分成几个目标,请为每个目标单独处理那个巨大的工作表)。目标有一个包含/排除文件的方便方法,所以你可以在每个文件的基础上有效地配置构建。
方案-一种更高的抽象概念--通过各种部署方式(运行、测试、存档)指导目标。具有通过环境参数配置生成的一般方法,但采用目标中的生成设置。创建/编辑/删除方案比创建/编辑/删除目标便宜且容易。
您可以使用多个方案以多种不同的方式引导一个目标。