玩轉iOS開發:iOS 10 新特性《Xcode Extension》

文章分享至個人我的技術博客: https://cainluo.github.io/14972357977664.htmlhtml


Xcode Extension

macOS, watchOS, tvOS, iOS開發, 最離不開的工具就是Xcode, 但Xcode真的讓咱們又愛又恨, 雖然有不少強大的功能, 但細節方面真的很難Care到, 因而乎Alcatraz誕生了, 在當時火的不要不要的, 只要是老司機都會裝一個.git

但如今蘋果爸爸貌似看到了開發者的需求, 因此如今給Xcode加了一個功能, 就是Xcode Extension.github

嚴格來講這不是iOS的東西, 但又剛恰好是隨着iOS 10一塊兒出來的, 想了想, 仍是集合在這裏吧.vim


建立項目

這裏咱們須要建立的是macOS的項目:微信

1

而後在項目的General裏找到添加Extension的選項:工具

2

選擇Xcode Editor Extension:ui

3

這就是Xcode Extension啦:spa

4

順便說說, 我在這個info.plist改了一下參數:插件

5


注意

這裏有一個小坑, 注意要給咱們Xcode Extension申請一個證書, 兩邊都要申請哦.3d

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


最後

碼字很費腦, 看官賞點飯錢可好

微信

支付寶
相關文章
相關標籤/搜索