November 1, 2015

automatically export from sketch file when build with xcode

開發過app的人就知道,在跟設計師co-work的時候,每次畫面哪邊一改,設計師丟來一整包圖,解開之後總是要花一堆時間在那邊做比對、搬移、調size、改檔名等等動作,不勝其煩。

而最近又準備要開始要進入這樣的循環,在順便為設計師研究新買的UI設計當紅app - Sketch時發現,時代又進步了!sketch竟有提供command line export的功能,真是工程師的福音呀!想當然而,一定有人把它整合進xcode的build flow中了。

經過一陣翻找之後發現,很可惜的是,各家作法並沒有完善到可以無腦使用的地步,只好自行進行一些客製了。

找到最接近需求的是這一篇的作法:Automatically export Sketch slices into an Xcode .xcassets bundle 它可以將sketch中的所有slice依照命名與export的設定,將需要的檔案export至xxx.imageset,並產生對應的Contents.json檔案,其實已經相當好用。

不過我還想要順便處理AppIcon的部份,但app icon的naming是.appiconset,之外Contents.json的內容也與imageset不盡相同。故fork了原作的專案,對他的slice.py做了一些修改,也同樣放在github上給大家參考使用。

我的版本目前會偵測sketch file中命名為AppIcon的slice,特別將它輸出至AppIcon.appiconset,並根據命名中包含的數字設為大小。ex: sketch中slice名稱為AppIcon-60,則會輸出AppIcon-60@2x.png,並在Contents.json中有一段為

{
"idiom": "iphone",
"scale": "2x",
"filename": "AppIcon-60@2x.png",
"size": "60x60"
},


以上,目前為止尚足夠使用,若有進一步的修改也會再commit到github上。

我的版本在這兒:water-su/Slicer on GitHub

happy coding~

0 Comments: