02ee0c201d73c21cef7639b4f236473a
Swift源码编译-让底层更清晰

WWDC2020 大会将通过 Apple Developer AppApple Developer网站免费向所有开发者开放! 从去年火遍全网的 SwiftUI 以及 Combine 到今年全新的“Swift Student Challenge” 无时不刻都在透露 Swift 时代已经来临

本人也是Swift一个深度着迷的开发者,并且有点喜欢玩底层! 非常感谢苹果爸爸 Swift 高度开源, 但是日常开发过程中总感觉还是缺了一点什么...

其实说白了要是能够我不能懂的底层,直接跑进源码看看流程,分析一下原理!这就完美了... 所以我毫不犹豫:Swift源码编译走起

着急尝鲜的小伙伴,请点击我的快速通道:Swift源码编译-Github地址

一、Swift编译准备

  • apple/swift 官网地址 这里clone我们需要编译的源码
  • 版本准备:macOS 10.15.3 Xcode 11.5 (这是我当前的版本,应该是只需要 Xcode 11.2)
  • 这里最新的源码编译时需要 Xcode 12.0 我本人现在没有升级,况且还只是beta 就不去玩,毕竟还要一段时间!以防不稳定
  • 由于编译速度还是有点慢,建议电脑性能稍微高一点,具体你们自己定
  • 网络建议:小楼梯 (不解释),稳定网线
  • 最重要的就是:keep patient (肯定会有各种问题报错,还是耗时非常严重:1-2h 这是正常现象)

二、开始编译吧

首先编译的手法有很多:Xcode - Ninja - Linux - VScode !各有各的方便,这里我们不去说其他的先来一个大家非常熟悉的:Xcode

1:准备编译目录

创建一个你喜欢的文件目录

mkdir swift-source
cd swift-source

2:clone 源码

这里用的是 swift-5.2.4-RELEASE 这个稳定版本,对于现在开发来说够了!未来更新再说,请记住一定要根据我这个版本,因为版本不一样会和你Xcode不兼容,后面报错,我可就不负责了:哈哈哈哈

git clone --branch swift-5.2.4-RELEASE
https://github.com/apple/swift.git
  • 这里如果你有小楼梯,应该很快的

3:clone 补充核验

  • 跳到swift文件下面 utils/update-checkout
  • clone 出后面编译需要的文件
  • 这很重要,因为update-checkout 将检出Swift源目录旁边的存储库
  • 这一步也是比较耗时的,这个时候你可以:Have a cup of coffee
./swift/utils/update-checkout --tag swift-5.2.4-RELEASE --clone

4:buid Swift (waiting)

  • 利用swift源码中的脚本编译
./swift/utils/build-script -x -R --debug-swift
  • 苹果github上面也指出了几个编译实例,大家也可以自己去玩!
top Created with Sketch.