STS.app Mac 10.12.1 总是在 .eclipse 中创建一个新的 org.springsource.sts 文件夹

STS.app on Mac 10.12.1 always creates a new org.springsource.sts folder in .eclipse

我已经在 Mac (10.12.1) 上下载并安装了 STS 3.8.2。每次启动 STS.app 文件时,都会在下面创建一个新的 org.springsource.sts_3.8.2.RELEASE_########_macosx_cocoa_x86_64 文件夹隐藏的 .eclipse 文件夹(散列在那里,因为我有许多相同的文件夹,散列区域中的数字是唯一的区别)。这样做时,我上次 运行 安装的默认工作区和所有插件都被清除了(因为它们存在于之前的 #### 文件夹中)。

我试过安装以前的 3.8.1 和 3.8.0 版本,但它们在做同样的事情。我以前的 STS 安装是从 3.7 开始的,已经升级到 3.8.1,但不会再更新了,因为我似乎无法修复更新错误(Whosebug none "fixes" 已经为我)。

有没有办法让STS每次启动时不在.eclipse文件夹中新建文件夹(实例)?如果是,怎么做?

这已报告给 STS 并记录在此处: https://issuetracker.springsource.com/browse/STS-4406

Eclipse 中相应的错误是: https://bugs.eclipse.org/bugs/show_bug.cgi?id=507328

长话短说:

这是由 macOS Sierra Gatekeeper App Translocation 引起的,该安全功能出于安全原因将应用移至私有只读位置。因此 Eclipse/STS 在您上面描述的那个位置为其配置创建一个文件夹。

由于 macOS Sierra 在每次重启后都会再次进行应用程序移位,Eclipse/STS 不再了解 "old" 配置区域并创建一个新配置区域。据我所知,Eclipse/STS 无法区分单独安装和新转移的应用程序...:-(

解决方法是:

  • A) 之后将 STS.app 移动到光盘上的不同位置 解压缩 tar.gz 存档(使用 Finder,而不是命令 线)。例如,如果将其移动到 "Applications",则所有内容 像以前一样工作(在这种情况下不会发生应用程序易位)。

  • B) 您也可以通过单击可执行文件(在 STS.app/Contents/MacOS).这也不会导致应用程序易位 因此一切都很好。

由于此错误 — 或者不幸的是 side-effect Apple 安全措施 — 仍然存在于 STS 3.9.8(我假设也在 3.9.9 中)并且上一个答案中的 Eclipse 错误报告已作为Workspace Preferences Do Not Persist on MacOS Sierra 的副本,虽然在终端中被标记为 "solved, actually in itself actually do not solve this dislocation issue — in that moving the app to /Applications or having a signed DMG, both making no difference — the info missing is that one can turn off App Dislocation on an app by app basis by using the "xattr" 命令,但它适用于扩展文件属性。

使用命令

sudo xattr -r -d com.apple.quarantine /Applications/sts.app

其中 -r 使命令对所有应用程序内容(macOS 应用程序是文件夹)递归,并且 -d 删除给定路径中的特定属性。

验证成功结果只需运行

sudo xattr /Applications/sts.app

你想要的成功结果是一个新的提示行。如果你在那里得到 "quarantine" 你就没有成功。

请注意,我只能在 macOS 10.12.6

中进行测试