本文是参考喵神的博客:http://www.onevcat.com/2013/02/xcode-plugin/,自己实践上的一些总结,文章介绍的是Xcode4.0的,而现在可能有点变化。想要了解原文,还请看之前链接。
引言:前几天看到一个Xcode鼓励师Miku,感觉到其实制作插件也是很好玩的,在闲余时间简单的研究了一下。
首先,我们制作APP的时候都会习惯性的找程序的入口,即为:appdelegate类。但是插件就不同了,我们需要新建一个OS X的 bundle 文件。
这时,你会发现这个项目中只有一个 info.plist文件
那么 系统 是如何知道要编译它的呢?它的入口到底在哪里?xcode在启动的时候会去加载~/library/Application Support/Developer/Shared/Xcode/Plug-ins 里面的bundle文件。所以我们需要在info.plist和build Setting进行处理。
Plist 设置:
添加下面几个属性:
1. plist 设置:
继续设置参数:
这些参数及其意义,请参考:喵神blog
DVTPlugInCompatibilityUUIDs:
插件使用标记Xcode的特定版本。这意味着当一个新的Xcode版本出来,所有第三方插件创建的工作区将会失败,直到他们添加特定于这个版本UUID。所以如果一个插件没有出现,您可能需要添加支持Xcode的版本。
Xcode在启动的时候会去加载~/library/Application Support/Developer/Shared/Xcode/Plug-ins 里面的bundle文件。
终端运行 defaults read/Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID,这个命令将输出当前Xcode的UUID。plist插件到DVTPlugInCompatibilityUUID键的值添加到数组中。
2. Build Setting 设置:
这些参数及其意义,请参考:喵神blog
要注意的是下面一个配置:因为 Skip install 需要设置为 NO,否则xocde不安装这个插件。Wrapper extension 设置为 xcplugin,把产品后缀名改为xcplugin,否则Xcode不会加载插件
如果一切顺利你可能看到,你的工程已经在你的插件目录了
建立一个cocoa class 注意不是 cocoa touch class,在.m里面添加方法:
重启Xcode你将看到:
选择左边的 load bundle 这样你的插件就完成了一大半了,打开控制台你就可以看到,这个方法已经被调用了。
到此初步的实现已经结束了,有兴趣的同学可以参考下面链接:
网友评论