目錄
-
入門
-
高級
開發(fā)Sketch插件時纯露,您可能需要一些方法來了解代碼運(yùn)行時發(fā)生了什么棠赛。
日志
調(diào)試JavaScript代碼最常用的方法是console.log
在關(guān)鍵步驟中添加一堆。不幸的是,JavaScriptCore(Sketch插件運(yùn)行的上下文)沒有提供console
。相反醉锅,調(diào)用的特殊方法log
是可用的。
有幾個選項(xiàng)可以查看這些日志:
- 打開Console.app并查找Sketch日志
- 看看這個文件
~/Library/Logs/com.bohemiancoding.sketch3/Plugin Output.log
- 運(yùn)行
skpm log
它將輸出上面的文件(skpm log -f
對日志進(jìn)行流式處理)
skpm
將填充console
以便console.log
照常使用炕置。除了使用log
場景后面的方法之外荣挨,它還會將日志轉(zhuǎn)發(fā)給sketch-dev-tools
男韧。
debugger
和變量檢查
當(dāng)插件運(yùn)行時朴摊,Sketch會創(chuàng)建一個與其關(guān)聯(lián)的JavaScript上下文〈寺牵可以使用Safari檢查此上下文甚纲。
在Safari中,轉(zhuǎn)到Develop
> name of your machine
> Automatically Show Web Inspector for JSContexts
朦前。而且你可能想要啟用介杆,Automatically Pause Connecting to JSContext
否則檢查器將會關(guān)閉,然后才能與之交互(當(dāng)腳本運(yùn)行完成后韭寸,上下文將被銷毀)春哨。
現(xiàn)在,您可以在代碼中使用斷點(diǎn)恩伺,在運(yùn)行時檢查變量的值等赴背。
Objective-C類內(nèi)省(Introspection)
Sketch中的插件系統(tǒng)可讓您完全訪問應(yīng)用程序的內(nèi)部結(jié)構(gòu)和macOS中的核心框架。Sketch使用Objective-C構(gòu)建晶渠,其類被橋接到JavaScript凰荚。知道你正在處理哪些類以及定義了哪些方法通常很有用。
您可以使用由網(wǎng)橋定義的一些自省方法來訪問這些信息褒脯。例如:
String(context.document.class()) // MSDocument
var mocha = context.document.class().mocha()
mocha.properties() // array of MSDocument specific properties defined on a MSDocument instance
mocha.propertiesWithAncestors() // array of all the properties defined on a MSDocument instance
mocha.instanceMethods() // array of methods defined on a MSDocument instance
mocha.instanceMethodsWithAncestors()
mocha.classMethods() // array of methods defined on the MSDocument class
mocha.classMethodsWithAncestors()
mocha.protocols() // array of protocols the MSDocument class inherits from
mocha.protocolsWithAncestors()
Sketch的開發(fā)工具
我們創(chuàng)建了一個小的Sketch特定工具來幫助您調(diào)試插件便瑟,并希望讓您的生活更輕松。它采用Sketch插件的形式番川,您可以在此下載并隨其啟動cmd + option + j
到涂。
原文:https://developer.sketchapp.com/guides/debugging-plugins/