Xcode所在的文件目录:
~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
开发流程:
<1>原始开发
一.配置
1.新建Xcode项目,选择Framework & Library
,接着就是选择Bundle
类型,扩展名为xcplugin
2.在工程中的info.plist文件中配置,XCPluginHasUI
:布尔类型,表明插件是否有用户界面;XC4Compatible
、XC5Compatible
:布尔类型,Xcode4的插件加载机制与Xcode5+不同。XCGCReady
:布尔类型设置为YES。
3.进行Xcode的Build Settings
设置:
Deploy Location
设置为YESSkip Install
设置为NOInstallation Build Products Location
设置为$HOME
(即家目录)Installation Directory
设置为/Library/Application Support/Developer/Shared/Xcode/Plug-ins
4.设置UUID
在命令行运行$ defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
获取UUID
在info.plist中添加UUID,如图:
二.开发
新建一个类,命名为ColorPlugin
,类型是OS X下的Cocoa Class,继承自NSObject
。
ColorPlugin.m
文件代码:
#import "ColorPlugin.h"
@implementation ColorPlugin
+ (void)pluginDidLoad:(NSBundle *)bundle {
NSLog(@"-----Hello,WHUT");
}
@end
在info.plist文件中配置插件的入口类:
记住,+ (void)pluginDidLoad:(NSBundle *)bundle
是一个类的入口函数。
一个简单的插件代码:
#import "ColorPlugin.h"
#import <AppKit/AppKit.h>
@implementation ColorPlugin
+ (void)pluginDidLoad:(NSBundle *)bundle {
NSLog(@"-----Hello,WHUT");
[self shared];
}
+ (instancetype)shared{
static dispatch_once_t onceToken;
static id instance = nil;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}
-(instancetype)init{
if (self = [super init]) {
[self addNotification];
}
return self;
}
- (void)addNotification{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidFinishLaunching:) name:NSApplicationDidFinishLaunchingNotification object:nil];
}
- (void)applicationDidFinishLaunching:(NSNotification *)noti{
NSMenu *appMenu = [NSApp menu];
NSMenuItem *fileMenuItem = [appMenu itemWithTitle:@"File"];
NSMenuItem *mineItem = [[NSMenuItem alloc] init];
mineItem.action = @selector(clickMine);
mineItem.target = self;
mineItem.title = @"color";
[[fileMenuItem submenu] addItem:mineItem];
}
-(void)clickMine {
[[[NSApp windows] firstObject] setBackgroundColor:[NSColor greenColor]];
}
@end
流程就是:监听Xcode的事件通知,然后执行一些操作。本例是当Xcode启动完毕后,修改窗口颜色。
<2>利用模板开发插件
下载Xcode-Plugin-Template,解压后,文件如下:
将Project Templates
文件夹拖到~/Library/Developer/Xcode/Templates
下。
然后,Xcode新建工程时,便会出现模板:
使用模板会帮助你配置繁琐的信息,但是你需要自己配置UUID。