Xcode 编译设置

了解了这么多编译原理,除了写一个自动化编译脚本以外,还可以看懂很多之前完全看不明白的编译错误。在 Xcode 中,也可以对编译过程进行完整的设置,很多时候编译错误的解决就是在这里进行的。

1.1 Build Settings

这里是编译设置,针对编译流程中的各个过程进行参数和工具的配置:

  • Architectures:编译目标 CPU 架构,这里比较常见的是 Build Active * Architectures Only(只编译为当前架构,是指你在 scheme 中选定的设备的 CPU 架构),debug 设置为 YES,Release 设置为 NO。

  • Assets:Assets.xcassets 资源组的配置。

  • Build Locations:查看 Build 日志可以看到在编译过程中的目标文件夹。

  • Build Options:这里是一些编译的选项设定,包含:

    • 是否总是嵌入 Swift 标准库,这个在静态库和动态库的第一篇文章中有讲,iOS 系统目前是不包含 Swift 标准库的,都是被打包在项目中。
    • c/c++/objective-c 编译器:Apple LLVM 9.0
    • 是否打开 Bitcode
  • Deployment:iOS 部署设置。说白了就是安装到手机的设置。

  • Headers:头文件?具体作用不详,知道的可以说一下。

  • Kernel Module:内核模块,作用不详。

  • Linking:链接设置,链接路径、链接标记、Mach-O 文件类型。

  • Packaging:打包设置,info.plist 的路径设置、Bundle ID 、App 显示名称的设置。

  • Search Paths:库的搜索路径、头文件的搜索路径。

  • Signing:签名设置,开发、生产的签名设置,这些都和你在开发者网站配置的证书相关。

  • Testing:测试设置,作用不详。

  • Text-Based API:基于文本的 API,字面翻译,作用不详。

  • Versioning:版本管理。

  • Apple LLVM 9.0 系列:LLVM 的配置,包含路径、编译器每一步的设置、语言设置。在这里 Apple LLVM 9.0 - Warnings 可以选择在编译的时候将哪些情况认定为错误(Error)和警告(Warning),可以开启困难模式,任何一个小的警告都会被认定为错误。

  • Asset Catalog Compiler - Options:Asset 文件的编译设置。

  • Interface Builder Storyboard Compiler - Options:Storyboard 的编译设置。

  • 以及一些静态分析和 Swift 编译器的设定。

1.2 Build Phases

编译阶段,编译的时候将根据顺序来进行编译。这里固定的有:

  • Compile Sources:编译源文件。
  • Link Binary With Libraries:相关的链接库。
  • Copy Bundle Resources:要拷贝的资源文件,有时候如果一个资源文件在开发过程中发现找不到,可以在这里找一下,看看是不是加进来了。

如果使用了 Cocoapods,那么将会被添加:

  • [CP] Check Pods Manifest.lock:检查 Podfile.lock 和 Manifest.lock 文件的一致性,这个会再后面的 Cocoapods 原理中详细解释。
  • [CP] Embed Pods Frameworks:将所有 cocoapods 打的 framework 拷贝到包中。
  • [CP] Copy Pods Resources:将所有 cocoapods 的资源文件拷贝到包中。
1.3 Build Rules

编译规则,这里设定了不同文件的处理方式,例如:

  • Copy Plist File:在编译打包的时候,将 info.plist 文件拷贝。
  • Compress PNG File:在编译打包的时候,将 PNG 文件压缩。
  • Swift Compiler:Swift 文件的编译方式,使用 Swift 编译器。
  • ….

你可能感兴趣的:(Xcode 编译设置)