文章分享至我的個人技術部落格: 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