Apple 在 Xcode 8 中引入了 Xcode 源代码编辑器扩展。Xcode 8 是否仍支持通过Alcatraz提供的插件?
6 回答
出于安全原因,Xcode 8 禁止代码注入(插件用于加载的方式)。您可以通过删除 Xcode 上的代码签名来规避此问题。这两个工具都能够简化:
https://github.com/inket/update_xcode_plugins
https://github.com/fpg1503/MakeXcodeGr8Again
要在不删除代码签名的情况下在 Xcode 8+ 上工作,必须将插件重写为Xcode Source Editor Extensions。不幸的是,这些扩展的 API 目前只允许文本替换,因此它们不是一个充分的替换。
我已经提交了关于 rdar 的报告,请不要犹豫,表达你的想法:
Xcode 是在所有 Apple 平台上进行开发的主要工具。人们可以喜欢也可以讨厌它,事实上它仍然是最强大的开发工具。
它的许多功能和实用性已经通过 3rd-party 插件实现,后来被 Alcatraz 项目覆盖,这是 Xcode 的第一大扩展管理系统,与 Node.js 需要 npm 一样重要和需要。这一切都建立在一个公平、有意识的社区开发其有用的开源附加内容并将它们发布在 GitHub 上。这不是一个针对感染物的代码注入贫民区。这是社区中的社区。
Xcode 8 倾向于放弃对这些插件的支持,通常被描述为一个安全步骤,有利于防止注入的东西的分发。这是错误的;你根本无法阻止,因为总会有人找到路。这一步只是让 Xcode 变得不那么可用、复杂并且功能不那么丰富。有许多重要的插件是开发人员喜爱、贡献和前进的,以使 Xcode 变得更好,诚实地告诉自己,大多数情况下甚至比你在短时间内做得更好。
社区需要强大的东西。比基本的源编辑魔法更强大。请本着社区精神重新考虑这一步,并支持您的开发人员。
在过去的几年里,有一个关闭你的平台的趋势。首先关闭 Spotlight 插件及其出色的 Flashlight 插件管理器,这简直太棒了,现在我需要禁用 Rootless 才能使用它。现在是 Xcode 插件。你做的越来越多,让开发人员和高级用户感到难过,因为他们手中没有他们的计算设备。
有一个关于 Alcatraz repo 的详细讨论,它说明了一切: https ://github.com/alcatraz/Alcatraz/issues/475
我附上了一个很棒的插件列表,我一天都离不开:
AxeMode - Xcode 问题修补 Backlight - 活动行突出显示 ClangFormat - 代码格式化程序 DerivedData Exterminator - 日常需要摆脱或坏东西 FuzzyAutocomplete - 名称说明一切,仍然比 Xcode 完成更强大 HighlightSelectedString MCLog - 控制台日志过滤,包括正则表达式 OMColorSense 多色 - 变量着色,可爱的东西 RSImageOptimPlugin - 在提交 SCXcodeMinimap 之前处理 PNG 文件 - 喜欢这个 SublimeText-thingy!XCFixin_FindFix – 修复 Find 功能 XcodeRefactoringPlus – 修补重构功能,仍然有问题,但比没有插件的 Xcode XToDo – TODOs 集合 ZLGotoSandbox – 因为没有它处理你的文件夹将是地狱
它们中的大多数与源代码无关,因此值得拥有一种重新加载和工作的方式。
没有支持,我们不能指望任何支持。Apple 决定关闭 Alcatraz 包管理器周围的生态系统,然后再准备好能够执行插件之前执行的操作的 api(扩展)。扩展目前仅限于不允许做太多事情的文本框架。
苹果宣布的主要原因是安全性,我们现在可以禁用代码签名以恢复 Xcode 中缺少的最重要的功能。社区糟糕的一天,苹果的糟糕决定。
我还建议在这里讨论 Alcatraz:https ://github.com/alcatraz/Alcatraz/issues/475 最重要的是,如果您想支持 Alcatraz,请在http://bugreport.apple.com上提交一个错误,让他们意识到许多人正在遭受这种变化
我做了同样的事情(openradar.appspot.com/28423208):
Xcode 是在所有 Apple 平台上进行开发的主要工具。人们可以喜欢也可以讨厌它,事实上它仍然是最强大的开发工具。
它的许多功能和实用性是由 3rd-party 插件实现的,后来被 Alcatraz 项目覆盖,这是 Xcode 的第一大扩展管理系统,与 Node.js 需要 npm 一样重要和需要。这一切都建立在一个公平、有意识的社区开发其有用的开源附加内容并将它们发布在 GitHub 上。这不是一个针对感染物的代码注入贫民区。这是社区中的社区。
Xcode 8 倾向于放弃对这些插件的支持,通常被描述为一个安全步骤,有利于防止注入的东西的分发。这是错误的;你根本无法阻止,因为总会有人找到路。这一步只是让 Xcode 变得不那么可用、复杂并且功能不那么丰富。有许多重要的插件是开发人员喜爱、贡献和前进的,以使 Xcode 变得更好,诚实地告诉自己,大多数情况下甚至比你在短时间内做得更好。
社区需要强大的东西。比基本的源编辑魔法更强大。请本着社区精神重新考虑这一步,并支持您的开发人员。
在过去的几年里,有一个关闭你的平台的趋势。首先关闭 Spotlight 插件及其出色的 Flashlight 插件管理器,这简直太棒了,现在我需要禁用 Rootless 才能使用它。现在是 Xcode 插件。你做的越来越多,让开发人员和高级用户感到难过,因为他们手中没有他们的计算设备。
有一个关于 Alcatraz repo 的详细讨论,它说明了一切:github.com/alcatraz/Alcatraz/issues/475
我附上了一个很棒的插件列表,我一天都离不开: AutoHighlightSymbol - 为当前选择的令牌添加亮点 ClangFormat - 代码格式化程序 DerivedData Exterminator - 每天需要摆脱或坏东西 FuzzyAutocomplete - 名字说明了一切,仍然比 Xcode 完成功能更强大 KZLinkedConsole - 能够单击控制台中的链接以打开相关文件并更快地调试 PreciseCoverage - 比 xcode 提供更好的 gui 来查看覆盖范围 XcodeColors - 根据日志级别在控制台中显示颜色(还应该如何使用控制台?)
它们中的大多数与源代码无关,因此值得拥有一种重新加载和工作的方式。
如果您不采取快速措施来支持您的社区,我相信我们会找到另一个可以使用的平台。
您当然可以通过重新编码签名 Xcode 8.0 来加载所有插件。XVim 团队的所有功劳。他们似乎解决了这个问题。 https://github.com/XVimProject/XVim/blob/master/INSTALL_Xcode8.md 解决方案中最重要的一步
似乎这应该工作。在这里找到了一些答案: https ://github.com/alcatraz/Alcatraz/issues/475 关键似乎是删除代码签名以使现有插件正常工作。