Xcode插件开发入门
2015-09-24 09:06
253 查看
详情请看这里
Xcode提供了所有你创建一个App需要的功能。但是由于其不开源以及没有制作Xcode-Plugin相关的文档,在我们需要添加一些自己的想法和功能的时候变得缺乏灵活性。 但是我们可以通过一些非官方的手段来扩展我们自己的Xcode,并且分享给别人使用。
一.Xcode Plug-in能做什么
太多了,我们可以自动生成代码注释(VVDocumenter),我们可以在代码编辑器中直接显示我们初始化的UIColor的颜色(ColorSense-for-Xcode),我们也可以在代码编辑器中直接显示我们要添加到UIImage的图片(KSImageNamed-Xcode),我们还可以调整控制台的颜色,修改代码样式,等等等等….
我们还可以用Alcatraz来管理我们的插件,简直方便!
二.Xcode Plug-in放在哪
所有的Xcode Plug-in都会放在一个叫
三.开发自己的Xcode Plug-in
1.准备工作
前往Xcode-Plugin-Template下载Xcode插件开发的模板。
将下载下来的文件夹
重启Xcode,当你新建一个工程的时候就可以在OSX中看到一个Application Plug-in的选项,里面有一个
四.进入开发
我们新建一个Xcode Plug-in模板的工程,可以看到模板为我们生成了好多代码。看与你工程同名的文件的initWithBundle方法。阅读一下后你就可以知道模板为我们填充了一个在Edit中添加一个Do Action的按钮,点击后会回调doMenuAction方法。
我们可以run一下我们的工程,你会发现启动了一个新的Xcode,因为我们做的是Xcode插件,启动的当然是Xcode,用Xcode编写Xcode的代码,是不是很有意思。试试点击新的Xcode的Edit有一个Do Action按钮,点击Do Action按钮,再回调中打个断点,看有没有回调你的方法。
1.DVTPlugInCompatibilityUUIDs
是的,你会发现你的回调方法木有调用,木有调用啊,什么鬼!其实这是因为你的插件不认识你正在跑的Xcode的版本,把你的Xcode版本介绍给它认识就好了。
打开插件工程的Info.plist,找到DVTPlugInCompatibilityUUIDs,打开这个下拉框,这里有所有你的插件认识的Xcode版本。
在terminal中输入
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
2.窃听Xcode通知
因为Apple至今也没有公开Xcode Plugin的文档。所以我们需要通过一些其他的思路寻找方法。比如窃听我们在操作Xcode的时候Xcode发出的各种通知。
将这行代码加入到我们的工程初始化中
这样我们就可以监听我们在对xcode做操作的时候xcode发出的所有通知了。跑一下,是不是通知刷刷的来了。。。
Xcode提供了所有你创建一个App需要的功能。但是由于其不开源以及没有制作Xcode-Plugin相关的文档,在我们需要添加一些自己的想法和功能的时候变得缺乏灵活性。 但是我们可以通过一些非官方的手段来扩展我们自己的Xcode,并且分享给别人使用。
一.Xcode Plug-in能做什么
太多了,我们可以自动生成代码注释(VVDocumenter),我们可以在代码编辑器中直接显示我们初始化的UIColor的颜色(ColorSense-for-Xcode),我们也可以在代码编辑器中直接显示我们要添加到UIImage的图片(KSImageNamed-Xcode),我们还可以调整控制台的颜色,修改代码样式,等等等等….
我们还可以用Alcatraz来管理我们的插件,简直方便!
二.Xcode Plug-in放在哪
所有的Xcode Plug-in都会放在一个叫
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins文件目录下,并且所有的插件都会以
.xcplugin作为后缀。
三.开发自己的Xcode Plug-in
1.准备工作
前往Xcode-Plugin-Template下载Xcode插件开发的模板。
将下载下来的文件夹
Xcode Plugin.xctemplate复制目录到
~/Library/Developer/Xcode/Templates/Project Templates/Application Plug-in/。如果没有对应的文件夹就自己手工创建一个。
重启Xcode,当你新建一个工程的时候就可以在OSX中看到一个Application Plug-in的选项,里面有一个
Xcode Plug-in模板。
四.进入开发
我们新建一个Xcode Plug-in模板的工程,可以看到模板为我们生成了好多代码。看与你工程同名的文件的initWithBundle方法。阅读一下后你就可以知道模板为我们填充了一个在Edit中添加一个Do Action的按钮,点击后会回调doMenuAction方法。
我们可以run一下我们的工程,你会发现启动了一个新的Xcode,因为我们做的是Xcode插件,启动的当然是Xcode,用Xcode编写Xcode的代码,是不是很有意思。试试点击新的Xcode的Edit有一个Do Action按钮,点击Do Action按钮,再回调中打个断点,看有没有回调你的方法。
1.DVTPlugInCompatibilityUUIDs
是的,你会发现你的回调方法木有调用,木有调用啊,什么鬼!其实这是因为你的插件不认识你正在跑的Xcode的版本,把你的Xcode版本介绍给它认识就好了。
打开插件工程的Info.plist,找到DVTPlugInCompatibilityUUIDs,打开这个下拉框,这里有所有你的插件认识的Xcode版本。
在terminal中输入
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID,terminal会返回一串字符串给你,这就是你的Xcode的DVTPlugInCompatibilityUUID,把这串字符串添加到DVTPlugInCompatibilityUUIDs中即可。
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
2.窃听Xcode通知
因为Apple至今也没有公开Xcode Plugin的文档。所以我们需要通过一些其他的思路寻找方法。比如窃听我们在操作Xcode的时候Xcode发出的各种通知。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationLog:) name:nil object:nil];
将这行代码加入到我们的工程初始化中
- (void)notificationLog:(NSNotification *)notify { NSLog(@"%@",notify.name); }
这样我们就可以监听我们在对xcode做操作的时候xcode发出的所有通知了。跑一下,是不是通知刷刷的来了。。。
相关文章推荐
- 判断数据是否存在
- 标准API使用小技巧
- Shell脚本入门
- VirtualBox 調整硬盤大小
- 创业的第四十七天
- 0916 词法分析(2)
- SQLSERVER和ORACLE批量处理表名和字段名大写
- OAF多语言的实现
- Java基础知识强化52:经典排序之冒泡排序(BubbleSort)
- Powershell DSC 5.0 - Pull 模式 (SMB)
- 64-bit Tips
- NGUI 3.5过程(三)Button button
- Centos定时执行python脚本
- PopupWindow在项目中的使用 并指定位置及加入动画效果 3ff8
- 为什么互联网医疗消灭不了黄牛?
- C#编程笔记(匿名方法,Lambda表达式 )
- cocos2d-x 移植android竖,横屏设置
- 2015秋季个人阅读计划
- 即时聊天的拍照做图像和相册选择做图像的功能的实现
- 跟Bob大叔观OO原则