Architectures
作用:设置构建target的架构相关,比如,CPU架构,构建模式和支持平台等。
Additional SDKs:
编译时需要附加的SDK,这些SDK必须是附加的SDK,不应该是整个框架的SDK,并且当有多个SDK的时候,第一个SDK有最高优先级;
Architectures:
当前Target支持的架构,在iOS里 通常有 x86_64(模拟器) armv7 (真机)等 ,通常用的静态库(.a / Framework) 动态库(.dylib / .tbd / Framework) 都是有架构要求的;
Base SDK:
target所能支持的iOS最高版本,图中为(iOS 11.4)
Build Active Architecture Only:
构建的架构是否只为当前可用架构,如果为Yes,就只构建当前所选可用的架构。这个是跟所选择的真机或者模拟器对应的,比如此选项为Yes,模拟器真机为 iPhone 6 ,那么build所支持的架构就为 arm64。在构建静态库、动态库的时候选择其所支持的架构也需要用到这个选项。
设备 | CPU架构 |
---|---|
32位真机 | armv7,armv7s |
64位真机 | arm64 |
32位模拟器 | i386 |
64位模拟器 | x86_64 |
Supported Platforms:
支持的平台:iOS 、 macOS 、tvOS 和 watchOS;
Valid Architectures:
可用架构,为target提供支持架构范围,但构架的target并不一定要全部支持这个范围。
Assets
Asset Pack Manifest URL Prefix
AssetPackManifest.plist
中URL的前缀,至于 AssetPackManifest.plist
的作用,尚不得而知;
Embed Asset Packs In Product Bundle
是否将 .xcassets
里面的 asset package (资源包)嵌入产品Bundle中;
Enable On Demand Resources
是否允许按需加载资源功能
On Demand Resources Initial Install Tags
和应用程序一起下载和安装的资源标签
On Demand Resources Prefetch Order
按需下载资源时的顺序。在应用程序安装之后,有一些需要下载的资源集合,这个集合的执行顺序就在这里设置 (格式为String List)
Build Locations
Build Products Paths
在执行构建时放置所有产品的路径。通常情况下这个路径不是针对于 每一个target而是针对于每一个project或者每一个user,默认的路径为$(PROJECT_DIR)/build
。
$(PROJECT_DIR)
Intermediate Build Files Path
在构建期间放置中间文件的路径。中间文件包括生成的源文件、对象文件等。Shell脚本构建阶段也可以在这里放置和访问文件。默认路径与Build Products Paths
一样。
Per-configuration Build Products Path
在给定配置的构建过程中放置构建产品的基本路径。默认情况下 路径为
$(BUILD_DIR)/$(CONFIGURATION)
, 比如build/Debug
,
通常会加上平台名 即
$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
,比如 build/Debug-iphoneos
Per-configuration Intermediate Build Files Path
在给定配置的构建过程中放置中间文件的基本路径。
Precompiled Headers Cache Path
在构建过程中放置预编译头文件的路径。默认为$(OBJROOT)/ SharedPrecompiledHeaders
。允许在多个项目之间共享预编译头文件。
Build Options
Always Embed Swift Standard Libraries
是否一直嵌入swift标准库。即使当前target没有任何swift代码,不过在嵌入了其他包含swift代码的产品或者正在测试一个包含swift代码的产品都应该打开这个选项。
Build Variants
即将生成产品的二进制文件的build变种列表。默认情况下 为”normal“,其他的变种还有”profile“和”debug“:
normal-用于生成普通的二进制文件;
profile-用于可以生成配置信息的二进制文件;
debug-用于生成带有debug标志、额外断点和诊断代码的二进制文件。
Compiler For C/C++/Objective-C
编译器选择,xcode 9.4.1使用的默认编译器是 Apple LLVM 9.0
Debug Information Format
要生成的调试信息的类型。
Enable BitCode
是否允许生成BitCode;BitCode
Enable Index-While-Building Functionality
控制编译器在编译时是否应该发出索引数据。
Enable Testability
是否允许测试性。当该设置被激活时,将使用适合运行自动化测试的选项构建产品,例如让测试可以访问私有接口。这个选项可能导致编译速度变慢。
Excluded Source File Names
在编译阶段不包括的源文件。这个设置一般用于定义复杂的筛选器,比如,*.$(CURRENT_ARCH).c
排除基于正在构建的体系结构的特定文件。
Generate Profiling Code
是否生成分析代码,此选项为Yes的时候,编译器和链接器会生成分析代码。比如,GCC会生成适于gprof(1)
的代码。
Included Source File Names
与Excluded Source File Names相反。在编译阶段时指定要显式包含的源文件的名称的列表,此选项必须与Excluded Source File Names一起使用,用来一起构建较复杂的筛选器。
Precompiled Header Uses Files From Build Directory
pch文件使用来自构建目录的文件。默认情况下,如果构建文件(Build Directory)
在项目目录(project directory)
之外,Xcode会假定pch文件包含这些构建文件(Build Directory)
。Xcode并不能确定当Xcode需要这些构建文件(Build Directory)
来构建项目时,这些文件到底在不在,如果确定没有使用构建文件(Build Directory)
,可以设置为NO,反之为Yes,以免导致编译失败。
Require Only App-Extension-Safe API
是否要求使用App Extension 安全的API。当为Yes的时候,编译器和链接器不允许使用App Extension不可用的API,也不能链接到未启用该设置的框架。一般在App Extension编程时会用到。
Scan All Source Files for Includes
在计算依赖表的时候是不是扫描所有的源文件。通常情况下为No。
Validate Built Product
是否校验编译产品。如果启用,在编译的过程中会对编译产品进行校验。