Apple的官方开源项目网站

Apple的开源其实做得很棒!http://www.opensource.apple.com/,这个Apple的官方开源网站真的是一个大宝藏。真的是不怕你知道,就怕你学不完。

WebKit就不用说了。在OS X和iOS分类下,有对应的WebKit的版本号,这里也可以快速知道相应操作系统里使用的WebKit版本。
Objective-C Runtime。objc运行时是如何工作的?如何使用mach-o里的__TEXT.__objc_xxx和__DATA._objc_xxx(__OBJC segment现在没有了?)?可以查看OS X分类下某个系统版本下的objc4-XXX目录。
Libc。想知道c库里的某个函数如何实现?可以查看OS X分类下某个系统版本下的Libc-XXX目录。
xnu。想学习内核?可以查看OS X分类下某个系统版本下的xnu-XXX目录。
想了解和学习各种工具如何实现?otool?nm?可以查看Developer Tools分类下某个Xcode版本下的cctools-XXX目录。nm.c就在这个目录里的msic目录里。
还有很多很多。。。
某个主题目录可以直接下载,而且,有一些主题里会有Xcode project文件,这样可以很方便查看和搜索。另外,某些主题的源代码应该是不完全的,不同的操作系统版本里会有不同,如果某个主题里的某个源代码在新的操作系统里没有找到,可以尝试在旧的操作系统里找一下。

http://www.opensource.apple.com/,你值得拥有!

参考链接


Apple Open Source

Xcode 10.1清除最近打开的工程

如果直接点击屏幕下方的Xcode图标,回弹出一个Xcode的启动框,右边会列出你最近打开过的工程,如果想清除这些记录,就点击Xcode的菜单栏的“File”菜单,然后选择 Open Recent ,然后就能看到Clear Menu了,点击后,再次启动Xcode就看不到先前打开过的工程了。

参考链接


Xcode清除最近打开的工程

在macOS Mojave (10.14.1)系统上使用Xcode 10.1导入IOKit Framework开发

尝试在在macOS Mojave (10.14.1)系统上使用Xcode 10.1进行IOKit Framework相关的开发,没有在网上找到合适的例子,自己摸索了一下步骤。

继续阅读在macOS Mojave (10.14.1)系统上使用Xcode 10.1导入IOKit Framework开发

解决macOS Mojave(10.14/10.14.1)无法删除从应用商店下载的macOS High Sierra安装文件

解决macOS Mojave(10.14/10.14.1)无法删除从应用商店下载的macOS High Sierra安装文件,现象如下图:
继续阅读解决macOS Mojave(10.14/10.14.1)无法删除从应用商店下载的macOS High Sierra安装文件

解决VirtualBox升级到5.2.6后无法启动之前版本关闭的处于休眠状态的芯片组为ICH9的虚拟机报告错误"VERR_SSM_LOAD_CONFIG_MISMATCH"

VirtualBox升级到5.2.6以及之后的版本,无法启动之前版本关闭的处于休眠状态的芯片组为ICH9的虚拟机。

报错信息如下:


继续阅读解决VirtualBox升级到5.2.6后无法启动之前版本关闭的处于休眠状态的芯片组为ICH9的虚拟机报告错误"VERR_SSM_LOAD_CONFIG_MISMATCH"

macOS Mojave(10.14)安装AX88179(USB 3.0 有线网卡)驱动程序

自己的mac book pro在升级到macOS Mojave(10.14)之后,无法识别USB 3.0有线网卡。

使用如下命令,查询网卡的设备类型:

然后下载驱动安装才可以。

官方下载地址:
AX88179 Drivers Download

解决macOS High Sierra使用dd命令向USB设备拷贝数据非常缓慢的问题

最近在使用Raspberry Pi Zero W,在创建系统镜像的时候,使用如下命令,发现非常缓慢,时间往往以小时计算:

如果要解决这个问题,那么可以使用如下方式:

注意两个命令中的区别,一个是/dev/disk2,一个是/dev/rdisk2,两者的区别可以通过如下命令来查看:

可以看到如下介绍:

根据介绍,rdisk属于原始设备(rawdisk),不必经过操作系统的文件系统缓冲处理,相当于直接操作硬件,速度非常快。但是像macOS High Sierra这种出现20x速度差别的情况,就不是太好理解了。

参考链接


macOS High Sierra(10.13.6)使用HL-340(CH340/CH341)芯片的USB转串口设备

最近开发需要,购买了一堆的USB转串口设备,在Linux下面都是免驱动的,但是到了macOS High Sierra(10.13.6)上,无法正常识别。在Linux上通过lsusb可以看到如下信息:

继续阅读macOS High Sierra(10.13.6)使用HL-340(CH340/CH341)芯片的USB转串口设备