手摸手带你玩转Xcode Extensions

题图:from imgurgit

事情是这样的前段时间看到,E神写了个新玩具叫Code Friend很酷炫,私下里给E神说拿来推广让iOSTips的读者体验一番,E神说目前功能还不完善,等再牛逼一点再拿来分享,而后就有了接下来的分享。github

有没有这样的体验,咱们常常要打开终端,跳转到当前工程目录,而后在执行pod install;咱们在编译的时候想要清除缓存须要先打开Xcode偏好设置,再选到location,再跳到DerivedData目录;几年Xcode更新过来,128G的你天天都在考虑删除哪一个文件,仔细想一想天天这类重复工做都有不少?swift

XcodeWay推荐vim

今天就带来一款Xcode扩展XcodeWay解放你的双手,让你再也不重复劳动,再也不每次Google CoreSimulator究竟在哪一个路径,再也不手动打开终端跳转目录而后Pod Install,再也不手动清除Xcode DerivedData缓存。xcode

功能

  • 一键打开工程根目录
  • 一键打开终端并跳到工程根目录
  • 一键打开DerivedData目录
  • 一键打开Provisioning Profiles目录
  • 一键打开Archives目录
  • 一键打开DeviceSupport目录
  • 一键Pod Install
  • 一键Pod update
  • 一键清除DerivedData

可扩展

若是你有其余好的想法,可实现Navigator协议,添加更多酷炫的功能。缓存

protocol Navigator {  func navigate()
  var title: String { get }
}
复制代码

安装

传送门:github.com/GesanTung/X…bash

按理说文章写到这里能够能够结束了,可是老峰认为咱们不该该仅仅只是会使用工具,还应该懂工具的制做原理,甚至本身制做工具。app

Xcode plugins Tips工具

其实在Xcode8以前Apple默许开发者自定义Xcode plugins插件,在2015年底,有一个恶意插件(XcodeGhost)植入Xcode,当时又很多开发者经过非官方渠道下载到了这个Xcode,这款恶意软件就使用插件机制,为了不这类潜在的恶意软件,在WWDC 2016苹果宣布Xcode Source Editor Extension为第三方扩展Xcode的惟一途径。这意味着,从Xcode 8开始,Xcode plugins插件如Xvim,Injection plugin都不能不能被Xcode加载使用了。 Tips:事实上尽管不支持Xcode plugins被官宣了,但咱们依然能够经过重签Xcode,而继续使用这些效率插件,plugins并不是今天主线,关于如何安装简单刷下副本:spa

第一步:制做证书

第二步:重签Xcode

codesign -f -s XcodeSigner /Applications/Xcode.app

重签以后早些时候的插件如Injection plugin,Xvim等等均可以继续使用了,可是有一点,重签后的Xcode是没法提交App到AppStroe的,因此咱们可能须要一个再装一个官方的Xcode版原本提交APP,固然如今不少团队构建上传都有专人自动化负责,因此咱们大可没必要关心提交的问题。

Xcode Extensions简介

回到本文的重点,咱们今天的主题是Xcode Extensions,其实无论Baidu仍是Google介绍它的文章都不少,我这里引用官方的介绍说一下:

New Xcode extensions for the source editor let you customize your coding experience. Use extensions to navigate within your editor’s text, and select, modify, and transform your code. Bind your favorite extensions to a keyboard shortcut to make common reformatting tasks a snap. Xcode includes a new template so you can easily create editor extensions and distribute them on the Mac App Store, or sign your extensions with your Developer ID to share them online. And because extensions run in a separate process, Xcode stays safe and stable.

因为XcodeKit暴露的接口太简单,甚至到了Xcode10其提供的功能也依然有限,可是依然有开发者制做了有多有趣的Xcode Extensions在Xcode->Xcode Extensions能够看到不少发布到AppStore的优秀扩展。

XcodeWay实现

说下XcodeWay的制做原理吧,咱们知道Xcode Extensions目前局限于操做Xcode当前选中的文件,好比给当前文件添加注释,对当前文件作Code Lint等等,XcodeWay是怎样实现一键Pod Install,一键清除DerivedData这样的功能呢?

XcodeWay fork自onmyway133,以前做者提供的功能比较单一,就是打开各类目录,我站在大佬额肩膀上作了下修改,支持了Pod操做,文件删除操做,模拟器删除操做(要知道用了几年的Xcode模拟器可能会有20多g),主要原理是经过Extensions执行AppleScript脚本(这货大概都懂吧,以前的文章也说过),在脚本中实现各类文件的操做,各类应用的唤起如唤起终端,关键代码以下:

1.执行AppleScript脚本方法

执行Pod install代码实现

菜单选中Do Pod Install

推荐阅读:

相关文章
相关标签/搜索