是的标题说:-)他们用简单的英语语言是什么意思?我真的不明白Apple网站上的解释,我需要重命名我的目标,我担心之后没有任何作用..
Jam*_*ter 283
我也加入了Workspace和Project!
BJ *_*mer 61
一个目标是在Xcode运行"构建"创造的最终产品.它可能是应用程序,框架,静态库或单元测试包.无论它是什么,它通常对应于"内置产品"文件夹中的单个项目.
一个方案表示你一起工作目标的集合.它定义了在Xcode(运行,测试,配置文件等)中选择各种操作时使用的目标.通常,您将只有一个方案,它使用运行,存档和配置文件操作的主应用程序目标,以及测试操作的单元测试目标.如果您要构建两个相关的应用程序,则可能有两个方案使用相同的单元测试包但不同的应用程序目标.
方案(在Xcode 4中引入)的主要好处是它们允许您在运行应用程序和单元测试之间切换,而无需切换选定的目标.
Abh*_*ngh 58
我是一个视觉人,因此解释我将使用图表的概念.
当你有多个目标时,它们可以与Xcode的Run,Test,Profile动作一对一匹配,这个概念定义了一个方案

一个目标是你的一个版本工程,即目标在类和资源略有不同时期建造的时候使用.项目可以具有多个构建时间设置,以满足不同的分发要求.
Hon*_*ney 15
太棒了;目标包含构建模块/框架/库或应用程序/最终产品的指令,例如构建 watchOS 应用程序和 iOS 应用程序的指令。方案知道如何响应某些操作,例如构建操作或测试操作或存档操作。
\n确保您观看WWDC16 视频 \xe2\x80\x94 Xcode 简介[45:13]。如果您想获得更深入的知识,请观看整个视频。该视频简单易懂,但非常基础。我的回答大多与此无关。
\n\n\n方案是您指定要运行的内容的方式,它还包含\n有关您希望如何运行它的信息。
\n例如,我可以有一个包含 iOS 应用程序和 Watch 应用程序的项目,\n在这种情况下,我将有一个方案来运行我的 iOS 应用程序,\n方案来运行我的 Watch 应用程序
\nRun 将在调试器中运行我的应用程序。
\n测试将运行我的测试。
\nProfile 将在仪器中运行我的应用程序,以便我可以测量\n其性能。
\n分析将运行 Xcode 的静态分析器并帮助捕获我可能会错过的问题。
\n最后,“存档”操作将构建我的应用程序以供发布,并将\n放入存档中,然后我可以使用该存档分发给我的测试人员或\n到App Store,或保存以供将来崩溃日志去符号化或\n符号化。
\n
\n\n项目是用于在 Xcode 中组织代码和资源的文档。
\n您可以引用光盘上的源代码文件和资源文件、\n实际将这些文件构建到应用程序等产品中的目标、\n配置目标如何构建其产品的构建设置,\n以及配置您如何执行操作的方案,例如带着你的目标奔跑。\n
\n现在,要访问您的项目设置,您可以在导航器中选择您的项目,选择编辑器顶部的弹出框,然后在其中选择您的项目。
\n
\n\n您可以引用光盘上的源代码文件和资源文件、\n实际将这些文件构建到应用程序等产品中的目标、\n配置目标如何构建其产品的构建设置,\n以及配置您如何执行操作的方案,例如使用您的目标运行[测试、构建]。\n目标包含构建\n应用或框架等事物的说明。
\n你的目标生产的东西称为它的产品。您的目标构建其产品所采取的\n步骤集称为构建\n阶段。
\n构建设置
\n最后,目标具有构建设置来配置它如何构建其产品[如何编译代码、使用的优化以及如何链接事物以及传递给链接器和编译器的某些标志。欲了解更多请参见这里]
\n现在,需要注意的一件事是,项目和目标都具有“构建”设置,并且目标继承在项目级别设置的值,但可以使用特定于目标的值覆盖它们。
\n目标的构建阶段会执行一些操作,例如首先构建依赖项、编译该目标中的源文件以及将目标链接到库和框架。
\n
总结一下:
\n帮助将一组文件放在一起来构建/运行产品/模块/包
\n就像单个应用程序可以有一个 iOS 目标和一个 watchOS 目标一样。或者只是一个 iOS 目标。或者单个 iOS 目标以及测试目标等。
\n如果您进入目标的构建阶段>>编译源,您将看到为该目标构建的每个文件。例子:
\n\n明确引用苹果文档:
\n目标指定要构建的产品,并包含从项目或工作区中的一组文件构建产品的说明。目标定义单一产品;它将输入组织到构建系统\xe2\x80\x94中,即构建该产品所需的源文件和处理这些源文件\xe2\x80\x94的指令。项目可以包含一个或多个目标,每个目标生成一种产品。
\n构建产品的说明采用构建设置和构建阶段的形式,您可以在 Xcode 项目编辑器中检查和编辑它们。目标继承项目构建设置,但您可以通过在目标级别指定不同的设置来覆盖任何项目设置。一次只能有一个活动目标;Xcode 方案指定活动目标。
\n一个目标及其创建的产品可以与另一个目标相关。如果一个目标需要另一个目标的输出才能构建,则称第一个目标依赖于第二个目标。如果两个目标位于同一工作区中,Xcode 可以发现依赖关系,在这种情况下,它会按所需的顺序构建产品。这种关系称为隐式依赖关系。您还可以在构建设置中指定显式目标依赖项,并且可以指定 Xcode 可能期望具有隐式依赖项的两个目标实际上并不依赖。例如,您可以在同一工作区中构建一个库和一个链接到该库的应用程序。Xcode 可以发现这种关系并首先自动构建库。但是,如果您实际上想要链接到工作区中构建的版本之外的库版本,则可以在构建设置中创建显式依赖项,这会覆盖此隐式依赖项。
\n给定的目标可以通过不同的行动来实现。
\n您可以使用启用了所有诊断的方案(这会使调试速度变慢),也可以采用不启用任何诊断的方案。或者运行某些性能相关测试的方案与同时运行单元测试和性能测试的方案。您可以编辑方案,使其执行以下操作:
\n建立多个目标
\n在任何操作之前或之后执行脚本
\n在任何操作之前或之后发送电子邮件
\n使用内存管理诊断运行
\n为任何操作生成调试或发布版本。
\n有关更多信息,请参阅自定义项目的构建方案
\n把它们放在一起:
\n点击运行后,Xcode 将查看所选方案。它将找到其关联的目标。使用该目标的构建阶段及其构建设置(将包含任何未被目标设置覆盖的项目设置)将产品构建到选定的目标中(目标可以是 iPhone 模拟器或物理 iPhone 或watchOS 等)。\n
再次观看 WWDC 视频!
\nXcode 结构
Workspace
-> Project
-> Target
-> Dependency
-> Scheme
-> Action
-> Build Configuration
-> Build Configuration File(.xcconfig)
Run Code Online (Sandbox Code Playgroud)
Workspace( .xcworkspace) - 是多个projects. 它是作为[关于]的下一步创建的cross-project references
Workspace包含所有schemes来自包含projectsWorkspace处理所有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
Run Code Online (Sandbox Code Playgroud)
Cocoapods[关于]使用workspacewhere 创建 Pods项目Project(.xcodeproj) -这是一种用于容器targets和scheme。它定义了代码文件、资源...
还Projects管理Build Configuration(由 更改scheme)和Build Configuration File[关于]
您可以将现有转换Project为Workspace
File -> Save As Workspace...
Run Code Online (Sandbox Code Playgroud)
Target-PBXNativeTarget部分。定义一组特定的生成设置,生成:
Application targetLibrary and framework targetsTestAggregate[关于]。例如,它用于创建一个Universal framework或Umbrella frameworkScheme
包含操作(运行、测试、配置文件、分析、存档)+配置(附加参数、[构建配置]、诊断)
可以共享方案,这有助于您在 CI、Carthage[示例] ... 中找到:
<project_path>/<project_name>.xcodeproj/xcshareddata/xcschemes
Run Code Online (Sandbox Code Playgroud)
Dependency-Targets可以有dependencies。依赖是针对源链接的。这些依赖可以静态或动态链接[关于]它们有两种类型:
Explicit Dependency[关于] - 位于同一个项目或嵌套项目中的依赖的源代码Implicit Dependency[关于] - 位于作为同一工作区一部分的项目中的依赖项的源代码/关闭代码。| 归档时间: |
|
| 查看次数: |
48693 次 |
| 最近记录: |