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
中进行测试
我已经在 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
中进行测试