学习和理解Xcode构建系统

puruo6ea  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(134)

好吧,我对Xcode的构建过程很好奇。设置多个目标,如何自动化版本控制,以及大致了解系统,以便我可以操纵它来做我想做的事情。
有没有人有书或者可以给我指一些文档,这样我就可以弄清楚这一切?
非常感谢。
还有一件事,如果有人真的看到这一点,因为改变它。
但是任何人都知道的任何一本书都会关注Xcode 4吗?有Xcode 3的释放,但我真的很好奇是否有任何一本书会大量关注Xcode 4。

wz3gfoph

wz3gfoph1#

有一件事对于一致的,可重复的,一个自动构建是xcodebuild命令的知识。遗憾的是,除了手册页,我找不到任何关于它的官方文档(类型为man xcodebuild)。这里有一个关于自动化iPhone构建here的有用指南,包括使用xcodebuild构建和使用agvtool进行版本控制。这与Mac应用程序的一般构建同样相关。
一般来说,使用xcodebuild进行构建非常简单:

cd project_dir
xcodebuild -project myproject.xcodeproj -configuration Release ARCHS="x86_64 i386" build

一旦您可以从这样的脚本构建,就很容易插入自动构建系统。

rdrgkggo

rdrgkggo2#

    • Xcode构建过程**

Xcode内部使用xcodebuild

.swift file
1. Preprocessing
-(Parser)> Abstract Syntax Tree(AST) 
-(type checking)> type safe code 
    2.Compiling by compiler(swiftc)
    -(SIL Generator)> Swift Intermediate Language(SIL) and optimizations 
    -(LLVM IR Generation)> Intermediate Representation(IR) 
    3. Assembling
    -(LLVM)> assembling .o file
4. Static Linking(ld)
5. Output binary

Xcode公开了其中一些步骤:

  1. Preprocessing
  • 替换宏
  • 拆分.h.m

在Xcode中,您可以查看.m文件的预处理器输出,方法是选择

select .m file -> Product -> Perform Action -> Preprocess
  1. Compiling-翻译低级中间代码。
    当调试不属于您的代码时,您经常会看到这个文件。Xcode允许您查看输出。
select .m file -> Product -> Perform Action -> Assemble
  1. Assembling(produce .o)-将代码转换为对象文件(.o文件)Mach-O(https://stackoverflow.com/a/59214522/4770877)在Xcode中,您可以在derived data目录下的<product_name>.build/Objects-normal文件夹中找到这些对象文件。
  2. Static Linking(produce .app.a.framework ...)About(https://stackoverflow.com/a/61140381/4770877)-它是静态链接器的一部分,必须解析对象文件和库/框架之间的符号。此过程生成合并的可执行文件,其中可以包含其他资源和动态二进制文件
    1.输出二进制
    你也可以使用Xcode Report Navigator来学习更多关于构建过程的知识
    LLVM(https://stackoverflow.com/a/66844588/4770877)

相关问题