Xcode 8是否支持插件(-> Alcatraz)?

30

苹果在Xcode 8中引入了Xcode源代码编辑器扩展。Xcode 8是否仍会支持通过Alcatraz提供的插件?


2
我感到痛苦 - 我需要 Vim! - TheRealRonDez
一些插件可以以更聪明的方式转换为扩展。https://medium.freecodecamp.org/how-to-convert-your-xcode-plugins-to-xcode-extensions-ac90f32ae0e3 - onmyway133
6个回答

22

Xcode 8为了安全起见禁止了代码注入(之前插件的载入方式)。您可以通过移除Xcode上的代码签名来避免此问题。以下两种工具都可以简化此过程:

https://github.com/inket/update_xcode_plugins

https://github.com/fpg1503/MakeXcodeGr8Again

如果要在Xcode 8+ 上使用插件而不移除代码签名,则必须将插件重写为 Xcode Source Editor Extensions。不幸的是,这些扩展的API目前只允许进行文本替换,因此它们并不能成为完美的替代品。


7

我已经在rdar上提交了一份报告,请毫不犹豫地表达你的想法:

Xcode是所有苹果平台开发的主要工具。人们可能会喜欢或讨厌它,事实是它仍然是最强大的开发工具。许多第三方插件通过Alcatraz项目实现了它的强大和有用性,它是Xcode的扩展管理系统中最重要和必需的部分,就像npm对于Node.js一样重要。这一切都基于一个公正、意识到自己作为有用的开源附加组件的社区,并在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 Polychromatic-变量着色,可爱的东西RSImageOptimPlugin-处理PNG文件之前提交SCXcodeMinimap-喜欢这个SublimeText-thingy! XCFixin_FindFix-修复查找功能XcodeRefactoringPlus-修补重构功能,仍然有缺陷,但比没有插件的Xcode少XToDo-TODOs集合ZLGotoSandbox-因为处理你的文件夹没有它会很糟糕。其中大多数与源代码无关,因此值得像魔术一样再次加载和正常工作。

4

4

由于苹果尚未准备好可以执行插件之前所做的API(扩展程序),因此Apple决定关闭Alcatraz软件包管理器周围的生态系统,也没有任何支持可供期望。目前,这些扩展程序仅限于文本框架,无法实现太多功能。

苹果公司宣布的主要原因是安全性问题,我们现在可以通过努力禁用代码签名,以恢复Xcode中缺失的最重要的功能。对于社区来说,这是糟糕的一天,是苹果做出的错误决定。

我还建议在这里讨论Alcatraz:https://github.com/alcatraz/Alcatraz/issues/475如果您想支持Alcatraz,请在http://bugreport.apple.com上提交漏洞报告,以使他们意识到许多人正在遭受这种变化的影响

我也这样做了(openradar.appspot.com/28423208):

Xcode是所有苹果平台开发的主要工具。人们可以喜欢或讨厌它,事实是它仍然是最强大的开发工具。它的许多功能和用途是通过第三方插件实现的,后来被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 - 根据日志级别在控制台中显示颜色(否则应该如何使用控制台?) 它们中的大部分与源代码无关,因此值得再次加载并像魅力一样工作。
如果你不迅速采取步骤来支持你的社区,我相信我们会找到另一个平台来使用。

1

需要注意的是:目前Xcode 8扩展功能基本上仅限于文本操作。希望苹果公司未来能够允许更多的功能。 - tfrank377
人们需要记住,他们仍然可以使用容器应用作为他们的GUI(这就是我在我的设置中所做的)。 - Lloyd Sargent

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接