下载WebKit源码

1)进入https://webkit.org/

2)点击页面的 Get Started 进入新页面,如下图所示

3)点击 Getting the code 进入新页面,如下图所示

4)在源码下载页面,有多种下载方式,包括直接下载代码zip包,通过SVN下载,通过Git下载。这里选择使用Git的方式进行下载,在控制台运行下面的命令。下载量有点大,约6G左右,耐心等待即可,下载完成会生成一个WebKit目录。

Xcode编译

1)Embedded Builds

下载的WebKit目录里面有一个Tools/Scripts目录,这里面有各种脚本,包括使用命令行编译WebKit的脚本build-webkit,但是使用Xcode编译的时候用不着它。另一个重要的脚本就是configure-xcode-for-embedded-development,在控制台运行如下命令:

sudo Tools/Scripts/configure-xcode-for-embedded-development

之所以需要这个脚本,是因为iOS属于嵌入式平台,编译给iOS嵌入式平台的WebKit需要一些命令行工具,上面的脚本就是让Xcode能够构建这些命令行工具的。否则,在编译诸如JavaScriptCore的时候,就会报如下错误:‘com.apple.product-type.tool’, but there’s no such product type for the embedded platform。

需要注意的是,运行完上面脚本之后,最好重启一下Xcode。

2)更改Xcode配置

WebKit源码下载完成之后,用Xcode打开里面的WebKit.xcworkspace。默认情况下,WebKit.xcworkspace里面的各个工程都是macos配置,需要进行更改, 左边红框就是需要更改的工程,右边红框是更改后的配置。

3)设置构建产物存储位置

选择Xcode的File菜单->Workspace Settings...打开Workspace设置窗口:

选择Advanced...按钮,打开如下窗口,按红框所示进行配置:

4)编译

选中 All Source选项,选择一个模拟器,然后点击Xcode的构建按钮开始构建。剩下的就是耐心等待,等待激动人心的 Build Success 提示(可能编译完成后有一个关于MiniBrowser工程的弹窗,直接关闭即可,不影响编译)。

创建调试工程

编译好WebKit之后,我们的目的当然是进行调试,以便用来学习WebKit的源码。那么,如何才能让我们新建的工程里面,使用自己编译的WebKit.framework,而不是系统自带的呢?

1)用Xcode新建一个新的Project,示例里面是TestWKWebView,并将这个Project添加到WebKit.xcworkspace。

2)设置TestWKWebView的scheme

如下图所示,点击Edit Scheme,打开设置窗口

在Edit设置窗口选择 Arguments选项,在 Environment Variables里面添加一项,Name:DYLD_FRAMEWORK_PATH Value:Path_To_WebKit/DerivedData/WebKitBuild/Debug-iphonesimulator,这里的Path_To_WebKit就是WebKit目录所在路径。一个方便的方法是,在Xcode的WebKit工程打开Product目录,找到WebKit.framework然后Show in Finder,将包含WebKit.framework的目录复制下来即可。

做好上面的设置之后,就可以编写测试程序,然后打上断点,看是否能够成功断在WebKit的源码里面, 如果你能够成功进入断点,那么恭喜你,你已经能够调试WebKit源码了。

 参考链接

https://webkit.org/building-webkit/

Xcode编译WebKit的更多相关文章

  1. 加快XCode的编译链接速度(200%+)—XCode编译速度慢的解决方案

    最近在开发一个大项目的时候遇到一个很头疼的问题,由于项目代码较多,每次都要编译链接1分钟左右,调试的时候很浪费时间,于是研究了一下如何提高编译链接的速度,在这里分享给大家. 提升编译链接的速度主要有以 ...

  2. sqlite使用xcode编译

    使用xcode去开发makefile的project(Building Makefile Projects With Xcode) 新建工程,template选择 external Build Sys ...

  3. Win7 & VS2013 编译 WebKit 总结

      [转载请注明Moon出品: http://blog.csdn.net/lzl124631x] 距离上次编译WebKit(实际日期是2012年10月)已经过去一年多了, 这期间有很多人问我编译相关的 ...

  4. XCode编译文件过多导致内存吃紧解决方法

    XCode编译文件过多导致内存吃紧解决方法 /Users/~~/Library/Developer/Xcode/DerivedData 1) 然后 找到编译文件 删除 就好了哦 快去试试看吧

  5. iOS——为Xcode编译POCO C++静态库

    一.POCO C++ library简介 POCO C++ library是一个C++编写的跨平台库,主要实现网络连接.数据库管理以及服务器,适用于跨平台.嵌入式. 二.为Xcode编译POCO C+ ...

  6. Xcode编译项目出现访问private key提示框

    原因: 在编译时Xcode进行codesign时需要访问"private key"时没有权限,然后让询问是否允许,有三个选项,全部允许.否绝.允许,一次弹出4个(我遇到的) 遇到问 ...

  7. linker command failed with exit code 1 (use -v to see invocation),经典Xcode编译错误的出现和解决!

    linker command failed with exit code 1 (use -v to see invocation)这个肯定是个xcode编译运行的时候经典的报错了. 这个问题曾经在我的 ...

  8. 加快XCode编译链接速度(200%+)—XCode编译慢液

    最近在一个大型项目的开发的时候遇到一个很头疼的问题,由于该项目的代码更,每次建立联系1纪要.浪费时间调试.因此,一些研究如何提高编译链接速度,这里给大家分享. 为了提高编译和链接的是以下三种方式的速度 ...

  9. 使用VS2013编译webkit

    环境: win7_x64.VS2013 开始: 一.下载webkit 从网站"https://github.com/WebKit/webkit"下载webkit,我下载的版本最后的 ...

  10. win7、vs2013编译webkit总结

    在windows7.vs2013环境下编译webkit,本人测试成功 1.解压cygwin到C盘下(建议放在C盘更目录下,否则编译期间会有部分文件找不到) 启动命令:C:\cygwin\bin\min ...

随机推荐

  1. (1,3,4,2,5)小和问题【Java】

    01[1,3,4,2,5]求小和 从右往左看:左边比右边小的加和到一起! 1 左边没有数 0 3 1 4 1+3 2 1 5 1+3+4+2 从左往右看:有几个数右边比左边大 1 4个数: 3 4 2 ...

  2. 搭载KaihongOS的工业平板、机器人、无人机等产品通过3.2版本兼容性测评,持续繁荣OpenHarmony生态

    近日,搭载深圳开鸿数字产业发展有限公司(简称"深开鸿")KaihongOS 软件发行版的工业平板.机器人.无人机等商用产品均通过 OpenAtom OpenHarmony(以下简称 ...

  3. OpenHarmony社区运营报告(2022年10月)

    本月快讯 ● <深圳市推动软件产业高质量发展的若干措施>于10月24日发布. ● 社区共发展逾5000位贡献者累计为社区提交超过11万个PR,深圳市优博终端科技有限公司(以下简称" ...

  4. MogDB/openGauss中merge的语法解析

    MogDB/openGauss 中 merge 的语法解析 近期了解学习了 MogDB/openGauss 中 merge 的使用,merge 语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成 ...

  5. 有奖活动 | 以代码之名,写出对Ta的爱

      七夕情人节到了,为了Ta, 你打算用什么方式表达爱? 是包包.鲜花.美酒.巧克力, 还是一封充满爱意的短信? 在HarmonyOS,有一群精致又机智的开发者们,他们#以代码之名,表达爱# 比起鲜花 ...

  6. HDC2021技术分论坛:跨端分布式计算技术初探

    作者:zhengkai,分布式通信首席技术专家 当今的移动应用都向着智能化和多样化方向发展,例如AI辅助,VR/AR应用,沉浸式游戏等.然而现实中的移动设备,因为便携性要求受限于尺寸.电池容量以及温控 ...

  7. 【#HDC2022】HarmonyOS体验官活动正式开启,赶快投稿赢限量奖品吧!

      1. [活动简介] HDC 2022 于11月4日线上线下正式开启.历时一年,在无数开发者的共同努力下,我们汇聚了HarmonyOS生态的新成果.新体验.新开放能力,邀你参与到HarmonyOS的 ...

  8. Linux之sudo

    [摘要] 生产环境中为了系统的安全性,Linux主机的root权限是只能管理器使用,普通用户不具有root权限,但是可以通过sudo获取root权限执行一些操作. 一.知识要点 wheel组 在Lin ...

  9. CAP 8.1 版本发布通告

    前言 我们很高兴宣布 CAP 发布 8.1 版本正式版,我们在这个版本中主要是添加了一些新的配置项支持,并且根据用户反馈做了一些功能调整,同时在这个版本开始默认禁用了从7.2版本引入的并行发布消息. ...

  10. JavaScript中的变量提升本质

    JavaScript中奇怪的一点是你可以在变量和函数声明之前使用它们.就好像是变量声明和函数声明被提升了代码的顶部一样. sayHi() // Hi there! function sayHi() { ...