iOS日常学习 - 让你的 Xcode8 继续使用插件

转载 2016年09月15日 22:01:51

本文转载,原文链接

随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉及到 Xcode8 有哪些更新,而是记录了如何让 Xcode8 继续支持 Plugin。

相信各位已经有尝试过 Xcode-beta 了,但是会发现之前所有的插件都失效了。一开始我以为是和之前一样 Xcode 升级了,需要更新 Xcode info.plsit 中的 DVTPlugInCompatibilityUUID,于是运行了如下命令,具体修复原理和方案可以参考这篇文章 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-beta.app/Contents/Info.plist DVTPlugInCompatibilityUUID`

结果还是无效,去 Github 上看,果然一堆人遇到了这个问题,可以看下这个 issue。由于 Xcode8 没了插件支持,我用的时候勉强还能习惯,一个用习惯了 Xvim 的同事表示不能忍,于是就去到 XVim 看有没有提这个 issue,果然也是有一堆人提到了这个问题,作者也给出了对应的解决方案,摘录最主要的一段如下:

With Xcode 8 and above, you’ll be asked if you want to remove code singature from Xcode. It is required to make the XCode load XVim. So if you are OK just type ‘y’ to proceed and remove code signature from your Xcode.

但是我并没有按照这种方式来操作,而是结合这个 issue 中的解决方案,总结起来步骤如下:

  1. 编译 MakeXcodeGr8Again 并且导出其 product (关于 MakeXcodeGr8Again,下文会详细说到)。
  2. 退出 Xcode8,同时运行刚刚导出的 MakeXcodeGr8Again,将 Xcode8 拖入其中,等待一段时间(3~10分钟)。
  3. 等菊花转完后,应用程序文件夹下会生成一个 XcodeGr8 的应用,运行命令 sudo xcode-select -s /Applications/XcodeGr8.app/Contents/Developer 将 Xcode 开发路径指向刚生成的 XcodeGr8。
  4. 既然 Xcode8 的签名已被移除,那么就可以继续使用上面的修复插件失效代码。但是上面的脚本要稍微改一下就是把 Xcode.app 换成 XcodeGr8.app 即可。代码如下:
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/XcodeGr8.app/Contents/Info.plist DVTPlugInCompatibilityUUID`

下面我们来看下步骤1提到的 MakeXcodeGr8Again,其 ReadMe 也有对应的介绍。这里大概摘录一下:

苹果为了避免类似 Xcode Ghost 事件的再次发生,Xcode8 禁用了插件机制,而开放了另一种形式:Source Editor extensions,但是这种形式局限性太大。MakeXcodeGr8Again 只是去除了它的签名,这样使得 Xcode8 也可以继续使用插件了。由于签名被移除,所以它的安全性又重回 Xcode7 时代,也就是还有可能受到类似 Xcode Ghost 的攻击。所以不推荐用 XcodeGr8 来提交应用到 Appstore。Use at your own risk.

PS:可能遇到的问题

  • 生成了 XcodeGr8 之后,打不开。 解决方法:重启。

  • 如果之前对其它版本的 Xcode-beat 也有使用这种方式,再对 Xcode8 GM 也是用该方式可能 MakeXcodeGr8Again 这个 APP 会一直闪退。 解决方法:卸载之前生成的 XcodeGr8,再重试。卸载后记得将开发路径重新指回原来的路径,即 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer。如果这种方式还不行,卸载所有版本的 Xcode,然后再安装 GM 版,重复上述步骤。

PPS:如果要卸载 XcodeGr8,记得将重新开发路径置回初始状态。

最后,重要的事情说三遍:
不要使用 XcodeGr8 打包上传 Appstore,最好使用服务器打包,保证服务器 Xcode 是 Appstore 下载的!!!
不要使用 XcodeGr8 打包上传 Appstore,最好使用服务器打包,保证服务器 Xcode 是 Appstore 下载的!!!
不要使用 XcodeGr8 打包上传 Appstore,最好使用服务器打包,保证服务器 Xcode 是 Appstore 下载的!!!

Xcode8 最快最方便的安装插件方案

自从Xcode8出来后,为了安全起见,给Xcode安装插件就惨遭苹果封杀,随后出现很多解决方案,其中有一种比较完美的方案: 教你如何科学的在Xcode8上使用插件,但是用过这个方案的同学会发现每次运...

iOS - 教你如何科学的在Xcode8上使用插件

原文链接:http://www.cocoachina.com/bbs/read.php?tid=1705417 1.先下载原版Xcode8 2.在应用程序中将Xcode8复制一份(用来以后打包上...
  • LSsugar
  • LSsugar
  • 2017年04月15日 10:25
  • 583

让你的 Xcode8 继续使用插件

随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉及到 Xcode8 有哪些更新,而是记录了如何让 Xcode8 继续支持 Plugin。 Update: 9....

Xcode 8如何继续使用插件

20160928Xcode 8的确更加安全了, 但是代价就是所有插件都用不了了, 因此,插件管理器Alcatraz的文档更新后, 明确说明了只支持Xcode 7。 下面是我在网上找到的解决办法,思路是...

iOS日常学习 - 每个Xcode开发者应该知道的七个使用技巧

本文为转载学习使用原文链接 工欲善其事,必先利其器。对一个iOS开发者来说,这就意味着对Xcode的熟练掌握程度。Xcode是一个学习起来有点难度的软件,下面的这些技巧或许可以显著的提高你的编程效...

[iOS学习]Xcode插件的使用

在Xcode中我们可以使用插件对Xcode的功能进行扩展,在开发过程中有许多方便我们开发工作的插件,下面介绍我觉得比较好用的插件。1 、Alcatraz 插件管理器https://github.com...

Xcode8 以后如何使用 插件

如何在xcode8使用插件, 1.去这个地址下载 https://github.com/inket/update_xcode_plugins   2. 打开终端: 输入 c...

在Xcode8上使用插件

在Xcode8上使用插件

iOS开发- 注释插件VVDocumenter-Xcode in Xcode8

如果是注释代码,因为Xcode屏蔽了插件,打开插件功能: sudo /usr/libexec/xpccachectl11 然后重启电脑生效 接着来说VVDocumenter 自从更新到...

xcode8 真机测试 ios10.1 使用的

  • 2016年10月26日 12:07
  • 13.77MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS日常学习 - 让你的 Xcode8 继续使用插件
举报原因:
原因补充:

(最多只允许输入30个字)