怎样创建一个xcode插件 第2部分/3部分

本文翻译自 https://www.raywenderlich.com/97756/creating-an-xcode-plugin-part-2

原作者:Derek Selander

译者:@yohunl

译者注:原文使用的是xcode6.3.2,我翻译的时候,使用的是xcode7.2.1,经过验证,本部分中说的依然是有效的.在文中你可以学习到一系列的技能,非常值得一看.这些技能不单单只是用来创建插件,对你平时的调试等,也有非常大的帮助.

欢迎你来到创建xcode插件教程的第二部分.在第一部分中,你已经了解了怎么通过NSNotification来窥探xcode的内部类,并且代码注入了其私有类DVTBezelAlertPanel,并且,你还添加了一个NSMenuItem菜单到xcode的菜单栏里,通过它来持久化是否开启我们自定义的插件Rayrolling的功能

在这个教程中,你会在第一部分中创建的Rayrolling的基础上继续向前,如果你并没有在这之前阅读第一部分或者你想从本处开始,你可以下载第一部分完成的demo.本章中,你将会通过深入了解一些可用的工具来进一步探索Xcode,利用你将会学到的新知识,来修改Xcode的标题栏,使标题栏改为展示Ray的某首歌的歌词
Plugin_Swizzled_Titlebar1-700x56.png

开始啦


打开Xcode和Terminal(终端),并且将它俩都平铺在桌面上,这样你可以同时看到它们,方便后续的操作.(yohunl注:后文将会一面在Xcode上点击,一面观察终端控制台的输出,一旦发现我们需要的输出,就要立马停止终端控制台,所以,平铺在桌面上才便于你操作,否则,你就忙不过来啦)
View_Organization-700x405.png
因为从上一章,你已经学会了从xcode运行一个xcode实例来创建插件和调试插件,所以我们换一种新的方式:你将会直接通过终端命令来使用LLDB来探索Xcode,你不用再像第一部分那样从一个Xcode启动另一个调试用的Xcode实例来探索Xcode是怎样工作的了.

怎样创建一个xcode插件 第一部分/3部分

本文翻译自 https://www.raywenderlich.com/94020/creating-an-xcode-plugin-part-1

原作者:Derek Selander

译者:@yohunl

译者注:原文使用的是xcode6.3.2,我翻译的时候,使用的是xcode7.2.1,经过验证,文章中说说的依然是有效的.在文中你可以学习到一系列的技能,非常值得一看

苹果的”一个足以应付所有”策略使得它的产品越来越像一个难以下咽的药丸.尽管苹果已经将一些工作流带给了ios/os x的开发者,我们仍然希望通过插件来使得xcode更加顺手!

虽然苹果并没有提供任何的官方文档来指导我们如何创建一个xcode插件,但是开发者社区做了大量的工作开发了一些非常有用的工具,通过这些工具,可以用来帮助开发者.

自动完成图片名的插件,到 清除缓存的插件 再到 使得xcode变成一个vim编辑器的插件,xcode的插件社区已经拓展了我们的思维,我们可以让xcode变得更加智能

在这个不算短的三部分教程中,你将创建一个xcode的插件来娱乐你的同事,其特色莫过于显示的内容并不是他所期望看到的!尽管这个插件是很轻量级的,你仍然可以学习到很多知识,例如,通过调试xcode,怎样找出你感兴趣的元素并且修改它,怎样将系统的功能函数替换为你自己的函数(通过swizzle技术)!

xcode7 插件制作入门

概述

我们平时也使用了很多的xcode插件,虽然官方对于插件制作没有提供任何支持,但是加载三方的插件,默认还是被允许的.第三方的插件,需要存放在 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins文件夹中,后缀名必须是.xcplugin (不过其实际上是一种bundle).
所以我们创建一个插件工程,直接创建bundle工程即可,然后通过修改后缀名为.xcplugin,将其放到~/Library/Application Support/Developer/Shared/Xcode/Plug-ins目录中就可以了

第一个demo插件功能:在xcode的edit菜单中加入一个叫做 测试菜单 的项目,当点击的时候,弹出一个警告框,显示一句话,完整的工程放在TestPluginBundle

,