美文网首页工具篇
工具篇---xcode插件使用

工具篇---xcode插件使用

作者: 下页天 | 来源:发表于2018-11-01 17:27 被阅读17次

    原理

    在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插件使用

        本文链接:https://www.haomeiwen.com/subject/tcgxxqtx.html