参考:WebKit官方Wiki
前言
由于WebKit内核不仅提供给iOS的WebView使用,Mac中同样会使用到,甚至有需要可以移植到Win下开发基于WebKit的浏览器。本文章仅分析在Mac下编译适用于Mac使用的WebKit内核,并调试基于Webkit的浏览器(MiniBrowser)。
编译WebKit前,准备以下东西
- 源码
可以到GitHub checkout相关的源码,或者在官方wiki中点击下载。 - 开发环境
2.1 Xcode
这个只要到AppStone下载即可,基本要求是6.1.1以上
2.2 Xcode Command Line
这个一般按安装了Xcode自动就会安装了
2.3 Java for Mac OS X Developer Package
可以到这个网址https://developer.apple.com/downloads.进行下载
开始编译
- 在Terminal中运行build-webkit脚本,路径为:(WebKit Root Path)/Tools/Scripts/build-webkit,并加上“--debug”参数。
编译过程有时会出现错误(Build Error),一般是由于编译使用的sdk版本过高,部分函数、语法不支持导致。若遇到这些错误,可以到出现这些错误的源码进行修复。
(我编译的时候出现两个错误:1. 关于参数的有个关键字声明错误,好像是_nulldata的关键字,解决方法是直接删除这个关键字;2.block参数不能为空的错误,将nil改为一个空block即可) - 当完成Terminal编译之后,需要再运行脚本set-webkit-configuration,路径为:(WebKit Root Path)/Tools/Scripts/set-webkit-configuration,并加上“--debug”参数
完成后,即可进行Xcode环境下的调试,首先打开webkit的工程文件,路径为:(WebKit Root Path)/WebKit.xcworkspace
里面的工程如下图
最下面3个测试模块暂时忽略,其他模块为组成WebKit的主要模块,其中WebKit与WebKit2分别对应iOS里面的UIWebView与WKWebView的内核,其区别在于单线程与多线程工作(WebKit2并不是WKWebView的内核全部源码,Apple并没有全部开源WKWebView的代码)。我们重点放在MiniBrowser这个工程,实际上WebKit这个源码自带一个迷你的浏览器,方便开发人员进行调试,所以我们要编译并运行、调试这个工程。
通过修改schemes,增加MiniBrowser的调试目标。
在编译开始之前,还有一些步骤要完成。
点击Xcode顶部工具栏File>WorkSpace Setting
设置导出数据位置参数为WorkSpace-relative(绝对路径下)
然后点击advanced,设置Location为Custom,并且选择RelativeToWorkspace,修改Products、Intermeditates值为WebKitBuild
可以开始编译le。Enjoy it~