打造你專屬的xcode plugin

20
打造你專屬的Xcode plugin Michael Chen KKBOX

Upload: -

Post on 29-Nov-2014

304 views

Category:

Mobile


4 download

DESCRIPTION

Build your own Xcode plugin @CocoaHeads Taipei

TRANSCRIPT

Page 1: 打造你專屬的Xcode plugin

打造你專屬的Xcode pluginMichael Chen

KKBOX

Page 2: 打造你專屬的Xcode plugin

Overview

• Xcode plugin template

• 窺探Xcode runtime

• 寫plugin⼀一些⼩小撇步

• 好東⻄西要與好朋友分享

Page 3: 打造你專屬的Xcode plugin

Xcode plugin有百百種...

Page 4: 打造你專屬的Xcode plugin

⾃自⼰己的plugin⾃自⼰己刻

⾃自⼰己的GA⾃自⼰己刻

Page 5: 打造你專屬的Xcode plugin

Xcode plugin簡介• 附檔名為.xcplugin

• 放在~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/

Page 6: 打造你專屬的Xcode plugin

Xcode template• Infos.plist

!

$ defaults read /Applications/Xcode.app/Contents/Info.plist | grep DVTPlugInCompatibilityUUID

DVTPlugInCompatibilityUUID = "A2E4D43F-41F4-4FB9-BB94-7177011C9AED";

Page 7: 打造你專屬的Xcode plugin

Xcode template• 設定Building Settings

參數名稱 值 說明

Installation Build Products Location

${HOME} Product根⺫⽬目錄

Installation Directory

/Library/Application Support/Developer/Shared/Xcode/Plug-ins

這是⼀一個相對路徑,會被上⾯面設定所影響。

Deployment Location YES Installation Directory

Wrapper Extension xcplugin Xcode plugin的附檔名

Page 8: 打造你專屬的Xcode plugin

其實也不⽤用這麼⿇麻煩...https://github.com/kattrali/Xcode5-Plugin-Template

Page 9: 打造你專屬的Xcode plugin

可以開始寫• 新增⼀一個主要class,跟Principal class名稱⼀一樣。

• plugin初始化 + (void)pluginDidLoad:(NSBundle *)bundle

Page 10: 打造你專屬的Xcode plugin

⼩小撇步1• 設定Scheme,讓Xcode⾃自⼰己對⾃自⼰己debug

Page 11: 打造你專屬的Xcode plugin

⼩小撇步2• class-dump xcode

• https://github.com/luisobo/Xcode-RuntimeHeaders

Page 12: 打造你專屬的Xcode plugin

⼩小撇步3• Find a control http://stackoverflow.com/questions/2715534

• 接收所有的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(listenAll:) name:nil object:nil];

• Hack private API swizzle method https://github.com/rentzsch/jrswizzle

Page 13: 打造你專屬的Xcode plugin

⼤大功告成• MCLog - 利⽤用Regular Expression過濾console log

https://github.com/yuhua-chen/MCLog

Page 14: 打造你專屬的Xcode plugin

好東⻄西不分享嗎?

Page 15: 打造你專屬的Xcode plugin

上架吧• GitHub • Alcatraz - The package manager for Xcode.

http://alcatraz.io/ • clone下來 • package.json加上資訊 • 發pull request

Page 16: 打造你專屬的Xcode plugin
Page 17: 打造你專屬的Xcode plugin

Twitter轉發, blog分享

Page 18: 打造你專屬的Xcode plugin

意外收穫

Page 19: 打造你專屬的Xcode plugin

太爽拉!• Trending repositories 成就達成!

Page 20: 打造你專屬的Xcode plugin

謝謝各位!Michael Chen @yuhua_twit