Architectures
1、Build Active Architecture Only这个属性,设置为NO时,我知道会编译多个版本,不过打出来的包会大不少。
设置为YES具体到底有什么影响(比如,是不是哪种设备不能装这个app)!!!
不知道把这个属性设为YES,对上appStore的应用有什么影响不。
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。
而设置为no时,会编译所有的版本。
这个是设备对应的architecture:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5
编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。
所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。
2、Architectures:架构,设为 armv6 或 armv7
ValidArchitectures:应用框架,可以设为armv6、armv7 或i386
Build Locations
1、itermediate build files path:中间生成文件的路径
2、Per-configuration Build Products Path:最终文件路径
比如设为“../app”,就会在工程文件.xcodeproj上一层目录下的app目录里,创建最终文件
默认为$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
等于$(BUILT_PRODUCTS_DIR)
3、Per-configuration Intermediate Build Files Path:临时中间文件路径
默认为:$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
precompiled headers cache path: 预编译头缓存路径
Build Options
1、Compile for C/C++/Objective-C : 编译器类型
2、Debug Information Format
发布的应用程序应该是完全优化过的,并且没有任何的调试器数据。性能分析介于这两点之间。它需要调试符号,但应该是完全优化过的。如果没有调试符号,那么性能分析就无法进行,也就没必要剖析或改进未优化的代码。
如果使用的是现代化的DWARF with dSYM文件调试信息格式,那么按如下所示设置Release构建配置:
●Debug Information Format(DEBUG_INFORMATION_FORMAT) = DWARF with dSYM
●Generate Debug Symbols(GCC_GENERATE_DEBUGGING_SYMBOLS) = YES
DWARF with dSYM文件格式会将调试信息写到单独的dSYM文件中,该文件并非最终产品的组成部分。最终结果就是生成的应用程序几乎不带任何的调试信息,该应用程序还带有一个dSYM文件,该文件向调试器和性能分析工具提供它们需要的所有信息。如果使用任何现代的Xcode项目模板创建项目,那就会看到这个构建配置。
如果你继承了一个很老的项目,使用Xcode的早期版本创建项目,或是出于某些原因而无法使用DWARF with dSYM文件格式,那么需要为性能分析提供特殊的构建配置。可按照如下步骤专门为剖析创建新的构建配置:
(1) 在项目的Info窗口的Configurations窗格中,将用于生成最终应用程序的Release构建配置复制一份。将新的配置命名为Performance。
(2) 在所有目标和/或项目的Performance配置中,开启Generate Debug Symbols,关闭Strip Debug Symbols During Copy。
在需要进行性能分析和增强时切换到该构建配置。如果修改了Release配置中的代码生成设置,那么记得更新Performance配置以与之匹配。
3、Run Static Analyzer :静态分析
Code Signing
真机调试的证书选择,选一个和Bundle identifier相对应的证书
Deployment
ios Deplyment Target :配置目标
Kernel Module
//
Linking
//
Packaging
//
Search Paths
XcodeHeaderPath的设置HeaderSearchPaths是一定会去搜索的。而UserHeaderSearchPaths只有在AlwaysSearchUserPaths为Yes时才会被搜索。
HEADER_SEARCH_PATHS
• )
This is a list of paths to folders to be searched by the compilerfor included or imported header files when compiling C,Objective-C, C++, or Objective-C++ source files.LIBRARY_SEARCH_PATHS
• )
This is a list of paths to folders to be searched by the linker forstatic and dynamic libraries used by the product.FRAMEWORK_SEARCH_PATHS
• )
This is a list of paths to folders containing frameworks to besearched by the compiler for both included or imported header fileswhen compiling C, Objective-C, C++, or Objective-C++, and by thelinker for frameworks used by the product.REZ_SEARCH_PATHS
• )
This is a list of paths to search for files included by CarbonResource Manager resources and compiled with the Rez tool.
Unit Testing
单元测试
Versioning
版本信息
Apple LLVM Compiler
Apple’s next generation compiler technology, the Apple LLVM compiler, does more than compile code. Apple LLVM technology is integrated into the entire development experience. The same parser used to build C/C++ and Objective-C code powers Xcode’s indexing engine, providing relevant code completions and even related documentation. As you work, Apple LLVM is constantly evaluating what you type, identifying coding mistakes shown as Live Issues, and thinking ahead for ways to Fix-it for you. Other compilers can tell you what is wrong — Apple LLVM can make itright.
Apple LLVM compiler 4.2-Code Generation
//
Apple LLVM compiler 4.2-Language
//
Apple LLVM compiler 4.2-Preprocessing
//
Apple LLVM compiler 4.2-Warning Polices
//
Apple LLVM compiler 4.2-Warning-All languages
//
Apple LLVM compiler 4.2-Warning-C++
//
Apple LLVM compiler 4.2-Warning-Objective C
//
OSACompile-Build Options
//
Static Analyzer-Checks
//
Static Analyzer-Checks-Objective-C
//
Static Analyzer-Checks-Security
//