玩转iOS开发:iOS 10 新特性《Xcode Extension》

3,231 阅读2分钟

文章分享至我的个人技术博客: https://cainluo.github.io/14972357977664.html


Xcode Extension

macOS, watchOS, tvOS, iOS开发, 最离不开的工具就是Xcode, 但Xcode真的让我们又爱又恨, 虽然有很多强大的功能, 但细节方面真的很难Care到, 于是乎Alcatraz诞生了, 在当时火的不要不要的, 只要是老司机都会装一个.

但现在苹果爸爸貌似看到了开发者的需求, 所以现在给Xcode加了一个功能, 就是Xcode Extension.

严格来说这不是iOS的东西, 但又刚刚好是随着iOS 10一起出来的, 想了想, 还是集合在这里吧.


创建项目

这里我们需要创建的是macOS的项目:

1

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

2

选择Xcode Editor Extension:

3

这就是Xcode Extension啦:

4

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

5


注意

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

6

7

不然就会报-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添加插件:

8

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

9

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

10

但这里多说一句, 当我们停止运行之后, 插件又会不见了的, 这个需要大家自行去打包然后发布出来~~这里就不多说了, 详细大家去参考XAlign


工程地址

项目地址: https://github.com/CainRun/iOS-10-Characteristic/tree/master/3.Xcode%20Extensions


最后

码字很费脑, 看官赏点饭钱可好

微信

支付宝