文章分享至我的个人技术博客: https://cainluo.github.io/14972357977664.html
Xcode Extension
做macOS, watchOS, tvOS, iOS开发, 最离不开的工具就是Xcode, 但Xcode真的让我们又爱又恨, 虽然有很多强大的功能, 但细节方面真的很难Care到, 于是乎Alcatraz诞生了, 在当时火的不要不要的, 只要是老司机都会装一个.
但现在苹果爸爸貌似看到了开发者的需求, 所以现在给Xcode加了一个功能, 就是Xcode Extension.
严格来说这不是iOS的东西, 但又刚刚好是随着iOS 10一起出来的, 想了想, 还是集合在这里吧.
创建项目
这里我们需要创建的是macOS的项目:

然后在项目的General里找到添加Extension的选项:

选择Xcode Editor Extension:

这就是Xcode Extension啦:

顺便说说, 我在这个info.plist改了一下参数:

注意
这里有一个小坑, 注意要给我们Xcode Extension申请一个证书, 两边都要申请哦.


不然就会报-67050错误:
IDESourceEditorExtension: Xcode Source Editor Extension does not meet code signing requirement: me.ocean.XcodeExt.XcodeExtTest ((null)), Error Domain=DVTSecErrorDomain Code=-67050 "code failed to satisfy specified code requirement(s)" UserInfo={NSLocalizedDescription=code failed to satisfy specified code requirement(s)}
这里还有一个诡异的错误代码4097, 但我clean了一下工程之后就消失了, 大家注意注意.
Hub connection error Error Domain=NSCocoaErrorDomain Code=4097
代码代码!!!
这里我就随手写两句代码好了, Xcode的扩展还是靠各位大神去发挥想象, 我以后再掺和咯.
XCSourceTextBuffer *textBuffer = invocation.buffer;
XCSourceTextRange *insertPointRange = textBuffer.selections[0];
NSInteger startLine = insertPointRange.start.line;
[textBuffer.lines insertObject:@"这是什么鬼👻" atIndex:startLine];
运行
一切就绪之后, 我们就运行, 然后选择为Xcode添加插件:

等待运行完成之后, 会弹出一个灰色的Xcode:

这时不用理会, 我们回到正常的Xcode, 然后找到Editor, 点击它, 我们就会发现插件在这里啦:

但这里多说一句, 当我们停止运行之后, 插件又会不见了的, 这个需要大家自行去打包然后发布出来~~这里就不多说了, 详细大家去参考XAlign吧
工程地址
项目地址: https://github.com/CainRun/iOS-10-Characteristic/tree/master/3.Xcode%20Extensions
最后
码字很费脑, 看官赏点饭钱可好
