首页 » 技术文章 » 技能进阶:如何开发Xcode插件?

技能进阶:如何开发Xcode插件?

 

ios_xcode

开发Xcode插件

苹果官方对于插件制作没有提供文档支持,但Xcode是默认开启了加载第三方插件的功能,插件是.xcplugin的文件(是bundle),存放于~/Library/Application Support/Developer/Shared/Xcode/Plug-ins文件夹中。

创建Xcode插件工程

创建一个插件工程, 就是直接创建bundle工程即可,然后通过修改后缀名为.xcplugin,放到~/Library/Application Support/Developer/Shared/Xcode/Plug-ins目录中即可,这个过程需要修改很多的工程配制,不过在Xcode的插件开发中, Xcode-Plugin-Template很好的帮忙我们解决了创建Xcode plugin工程的繁琐过程,深受大家的喜欢。

安装 Xcode-Plugin-Template 打开https://github.com/kattrali/Xcode-Plugin-Template,发现竟然无法下载,提示404, 原来Xcode-Plugin-Template已经归入Alcatraz

安装Alcatraz

curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh

打开Package Managerpackage_manager

搜索XCode Plugin并安装

install_xcode_plugin

新建项目

菜单里就会出现Xcode Plugin的选项create_project

填入工程名称project

点击完成,查看代码

- (void)didApplicationFinishLaunchingNotification:(NSNotification*)noti
{
    //removeObserver
    [[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationDidFinishLaunchingNotification object:nil];
    
    // Create menu items, initialize UI, etc.
    // Sample Menu Item:
    NSMenuItem *menuItem = [[NSApp mainMenu] itemWithTitle:@"Edit"];
    if (menuItem) {
        [[menuItem submenu] addItem:[NSMenuItem separatorItem]];
        NSMenuItem *actionMenuItem = [[NSMenuItem alloc] initWithTitle:@"Do Action" action:@selector(doMenuAction) keyEquivalent:@""];
        //[actionMenuItem setKeyEquivalentModifierMask:NSAlphaShiftKeyMask | NSControlKeyMask];
        [actionMenuItem setTarget:self];
        [[menuItem submenu] addItem:actionMenuItem];
    }
}

上面这段代码会在Xcode的Edit菜单下新增一个Do Action菜单

从Xcode5开始,插件都只能运行在特定版本的Xcode中。这也就意味着当新的Xcode更新安装后,所有的第三方插件都将失效,除非你添加了该版本Xcode的UUID。如果部分模板没有起作用,你也没看到一个新的菜单项,可能的原因之一就是因为没有对应版本的UUID,你需要添加对应该版本Xcode的支持

获取UUID:

defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID

设置Info.plist文件的DVTPlugInCompatibilityUUIDs选项

B63CCEFB-DAAC-4316-AB6B-2958687FC661

运行此项目,会启动一个新的Xcode实例,并点击Do Action菜单

XcodePluginHelloWorld-232x320

Screen-Shot-2015-05-11-at-8.48.27-PM-480x239

Xcode的插件工程这里就创建完成!


Crasheye Xcode Plugin工程

Crasheye Xcode Plugin完成一键 CrasheyeSDK 的安装、升级。

打开XCode工程

open_xcode

如果未安装或者有新版本时,会提示是否安装、升级

install

3

4

Crasheye Xcode Plugin的代码托管在了github,工程地址 里面有关于Xcode ide主要视图如果访问、获取、修改,如何修改工程配制等相关操作

原文链接:技能进阶:如何开发Xcode插件?,转载请注明来源!

7