Xcode插件

Xcode所在的文件目录:

~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins

开发流程:

<1>原始开发

一.配置

1.新建Xcode项目,选择Framework & Library,接着就是选择Bundle类型,扩展名为xcplugin

2.在工程中的info.plist文件中配置,XCPluginHasUI:布尔类型,表明插件是否有用户界面;XC4CompatibleXC5Compatible:布尔类型,Xcode4的插件加载机制与Xcode5+不同。XCGCReady:布尔类型设置为YES。


3.进行Xcode的Build Settings设置:

  • Deploy Location设置为YES
  • Skip Install设置为NO
  • Installation 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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值