美文网首页Xcode相关iOS-开发
Xcode 关于插件失效的若干问题

Xcode 关于插件失效的若干问题

作者: 山水域 | 来源:发表于2016-10-03 16:41 被阅读85次

    关于Xcode 的 UUID

    UUID含义是通用唯一识别码 (Universally Unique Identifier),是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字
      UUID由以下几部分的组合:
      (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
      (2)时钟序列。
      (3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

    每一版Xcode的升级,其UUID 都会进行改变。

    查看Xcode的UUID

    方式1
    在终端执行
    defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID

    终端示例.png

    方式2
    在/Applications目录中找到Xcode.app,右键”显示包内容”,进入Contents文件夹,双击Info.plist打开,找到DVTPlugInCompatibilityUUID,拷贝后面的字符串。

    示例.gif

    升级Xcode 插件失效问题 (仅适用于Xcode 8 之前)

    插件通过 DVTPlugInCompatibilityUUIDs 来指定能够运行此插件的 Xcode 版本。因此,DVTPlugInCompatibilityUUIDs 中存放的是 Xcode 版本对应的 UUID,Xcode 在启动加载控件时,将当前 UUID 同插件 Info.plist 中 DVTPlugInCompatibilityUUIDs 存放的 UUID 数组进行匹配,如果没有匹配项,说明此插件无法在该版本的 Xcode 运行,插件也就失效了。

    添加Xcode的UUID到插件的Info.plist文件

    方式1--插件已经安装完成
    1、打开xcode插件所在的目录:
    ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins;
    2、选择已经安装的插件例如VVDocumenter-Xcode,右键”显示包内容”;
    3、找到info.plist 文件,找到DVTPlugInCompatibilityUUIDs的项目,添加一个Item,Value的值为之前Xcode的UUID,保存。

    示例.gif

    方式2--插件还未安装/重新安装
    1、从GitHub克隆仓库到本地,在Xcode中打开项目,选择项目名称,在TAGETS下选中VVDocumenter-Xcode;
    2、选择Info,找到DVTPlugInCompatibilityUUIDs的项目,添加一个Item,Value的值为之前Xcode的UUID;
    3、Build项目,VVDocumenter-Xcode会自动安装。

    重启Xcode 会有弹窗

    示例.png

    终端添加UUID到插件的Info.plist文件

    进入plugin安装的目录
    终端输入
    cd ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
    执行下面的命令后,Xcode会打开这个plist文件
    open VVDocumenter-Xcode.xcplugin/Contents/Info.plist

    Snip20161003_8.png
    DVTPlugInCompatibilityUUIDs 数组里加一行,粘贴你在man时看到的UUID。这些UUID都对应Xcode的一个历史版本。

    当然如果插件过多,也可以用终端批量操作
    终端输入
    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.plist DVTPlugInCompatibilityUUID`
    `
    解说:
    1、通过 find 命令在插件目录下找到所有插件的 Info.plist 文件。
    2、通过 defaults read 命令从 Xcode 的 Info.plist 读取 DVTPlugInCompatibilityUUID。
    3、通过 xargs 命令对上一步的搜索结果进行“for 循环”(就这样理解吧),针对每一个 Info.plist 文件,利用 defaults write 命令将当前版本的 UUID 加到 DVTPlugInCompatibilityUUIDs 中。

    XCode 8 插件失效问题

    xcode8增加了安全相关的检查,更细点说它从根源上屏蔽了插件的工作,xcode插件在xcode8上统统不能执行。所以确切的说只要是Xcode 8 就不可能使用插件了。所谓鱼与熊掌不可兼得,安全与方便也不可兼得呀!

    当然如果你插件爱不释手,那就可以忽略安全性,仍然用Xcode 8 之前的版本,当然也可以使用破解版的Xcode 8 (还不如用Xcode 8 之前的版本);
    破解方法:
    xcode8继续愉快的使用插件
    让你的 Xcode8 继续使用插件

    点我点我点我哦.png

    如有技术问题,扫码交流

    如有技术问题,扫码交流.jpg

    相关文章

      网友评论

        本文标题:Xcode 关于插件失效的若干问题

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