这是一个Xcode的开发模板,用来方便开发IOKit驱动的。
前言
我的主力开发生涯,基本都是在我的黑苹果上完成的,而我黑果的开发生涯,是从学习IOKit开始的。从开始学习IOKit到现在,我十分头疼的一件事之一恐怕就是建立IOKit驱动工程的过程了。说句实话,我一直觉得Windows下的开发不如macOS下开发舒服,因为Windows的几个常见IDE(开发环境)我是怎么看怎么土,而且有的IDE用起来真是让人头秃(没错,说的就是你,QtCreator,别躲了)。
但是你说在macOS(黑苹果)下面使用Xcode开发就一定很舒服了么?也不是,至少有两点,我是十分不舒服的,一个是Xcode那一堆让人抓狂而又无可奈何的英文,另一个就是Xcode那令人觉得十分鸡肋的模板了(这里点名表扬VS,虽然我对VS的那个界面极度嫌弃,但是VS不管什么工程,基本上补全的示例代码是既友好又能看懂,确实很舒服)。
假设,你现在就是一名开发者,你现在要建立一个IOKit工程来开发你自己的驱动,当工程建立完成以后,你会发现映入你眼帘的,是这样一行代码:
1 | /* Add your code here */ |
在最开始学习IOKit的时候,我的第一反应就是:WC,你这给了等于没给嘛,连几行示例代码都不舍得给,Xcode我xxxx(此处略去一万字国粹)……
可是,骂归骂,写还是要写的。没办法,我只能一边骂,一边忍受着一堆英文和没有模板的工程写我的项目。
后来,一个机遇,我部分解决了Xcode的中文显示问题(这里是这个项目的传送门),但是这个IOKit的驱动模板问题却始终没有得到解决。
转机出现在今天的上午。我本来是要研究在Xcode中AI补全代插件开发的问题,却无意间浏览到了kattrali 老哥的 Xcode-Plugin-Template项目。在这,我突然就迸发了一丝火花,既然他都可以创造出一个模板来,我为什么就不能动手改进现有的IOKit模板来方便我的创作呢?
说干就干,我首先提取出了我现在使用的Xcode9.3版本的IOKit Driver.xctemplate
文件,然后对这里的文件与kattrali 老哥项目的文件进行比对分析,经过了几个小时的摸索努力,终于成功改造出来了全新的IOKit模板!
功能
在写IOKit的时候,我们有些必要的代码是需要补全的,比如在头文件里,你会写出这样的类似代码:
1 | #ifndef qqq_h |
而在cpp文件里,你还要实现这样的代码:
1 | // 引入你定义好的头文件 |
各位,你们看到了吧,这仅仅是一个最基本的IOKit驱动的代码,就需要这么些,这可不是简简单单一句/* add your code here */
就能概括得了啊。如果你每次写一个IOKit驱动,就意味着你都需要重复写一遍这些代码,不仅耗费时间不说,还容易出现错误,在这种无谓的事情上浪费时间,有必要么……
所以,这个项目就是干这件事的。具体来说,它可以干以下三个任务:
- 补全IOKit基本代码
- 添加必要注释
- 为IOKit驱动提供
headerdoc
风格文档示例(Xcode自带文档格式)
当你使用了这个模板以后,你只需要建立一个IOKit工程,系统就会自动为你提供一个现成的代码示例,方便你的开发:
使用
要想使用这个模板,很简单,只需要你将这个模板放到 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Mac/Other/
,替换原目录下的 IOKit Driver.xctemplate
,然后重启你的Xcode,就可以尽情享受这个模板的便利了。
目前这个模板已经在Xcode9.3上测试通过了,Xcode 9系列大概率能过,其他版本请自行测试,本人不对其他版本的测试所造成的损失负责。
许可证以及传送门
这个模板使用MIT许可证,传送门见这里。