工具篇---xcode插件使用

原理

在Xcode启动的时候,Xcode将会寻找位于~/Library/Application Support/Developer/Shared/Xcode/Plug-ins文件夹中的后缀名为.xcplugin的bundle作为插件进行加载(运行其中的可执行文件),这就可以令我们光明正大合法合理地将我们的代码注入(虽然这个词有点不好听)Xcode,并得到运行。因此,想要创建Xcode插件,我们需要创建Bundle工程并将编译的bundle放到上面所说的插件目录中去,这就是Xcode插件的原理。

因为是注入方式添加插件,所以如果插件有问题闪退,那么Xcode也会闪退。

使用之前请先备份Xcode,安装插件后不可打包上传Appstore,使用请谨慎!

苹果为了避免类似 Xcode Ghost 事件的再次发生,Xcode8 禁用了插件机制,而开放了另一种形式:Source Editor extensions,但是这种形式局限性太大。本文介绍Xcode 8 继续使用插件。

实践篇

恢复Xcode 8 插件

  • 原Xcode 插件安装目录

    tips:如果遇到插件引起Xcode crash的情况,可在改目录下删除对应插件

    ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
    
  • 删除所有原插件

    cd ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
    rm -rf ../Plug-ins
    
  • 对Xcode进行重签名

    钥匙串访问 -> 证书助理 -> 创建证书

    名称:XcodeSigner

    身份类型:自签名根证书

    证书类型:代码签名

  • 期间允许所有权限

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

Alcatraz

Alcatraz 是一个帮你管理 Xcode 插件、模版以及颜色配置的工具。它可以直接集成到 Xcode 的图形界面中,让你感觉就像在使用 Xcode 自带的功能一样。

安装和删除

使用如下的命令行来安装 Alcatraz:

curl -fsSL https://raw.github.com/alcatraz/Alcatraz/master/Scripts/install.sh | sh

修改UUID

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 'defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID'

如果你不想使用 Alcatraz 了,可以使用如下命令来删除:

rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
rm -rf ~/Library/Application\ Support/Alcatraz

重启Xcode,选择 load bundles

通过 Alcatraz 安装插件后,重启Xcode不出现 load bundles 提示框,执行“修改UUID”,再重启Xcode。

某些插件无法通过Alcatraz安装,可直接通过github下载打开。

参考链接

Xcode plugins 开发

Xcode奇淫巧技(三)——Xcode 8 插件

使用Alcatraz来管理Xcode插件

你可能感兴趣的:(工具篇---xcode插件使用)