Xcode 编译设置

作者: CoderLF | 来源:发表于2018-12-17 20:48 被阅读35次

    了解了这么多编译原理,除了写一个自动化编译脚本以外,还可以看懂很多之前完全看不明白的编译错误。在 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 编译设置

        本文链接:https://www.haomeiwen.com/subject/bofhkqtx.html