为什么某些应用程序聚焦结果显示“ .app”扩展名,但不是全部?


11

即使我已明确设置Finder首选项以显示所有文件扩展名,我仍然发现某些应用程序在其Spotlight结果中未显示文件扩展名。

文件名扩展

这里有些例子。

我在跑美洲狮。

Skype的
字
麻雀
笔记


这可能是指定本地化包名称的应用程序吗?以便显示捆绑包名称,而不是文件名?
Thilo 2012年

这个问题与[this] [1]非常相似。[1]:apple.stackexchange.com/questions/33378/…–
mcw

Answers:


9

TL; DR

基本上,这是macOS 10.13 High Sierra中引入的错误或错误修复:Spotlight现在尊重Finder设置来显示文件扩展名。禁用该设置将从Spotlight中删除.app扩展名。

全长答案

我知道这是一个非常老的问题,但是我在高山脉(High Sierra)10.13遇到了déjà-vu;与此不同但有一些相似之处,因此我进行搜索并偶然发现了这个问题,这是我的答案:

实际上,应用程序显示为目录,就好像它们是单个文件一样。Apple将其称为捆绑包(尽管Finder将其命名为“ Package ”,如上下文菜单中的“ Show Package Contents ”所示)。如果应用程序不仅是捆绑软件,苹果公司还将捆绑软件用于框架,插件,应用程序扩展,XPI服务,某种安装程序包以及数据存储格式(如果存储的数据由多个文件组成,但应仅作为一个文件出现(例如,带有图片的RTF文档可以作为RTFD捆绑存储)。捆绑软件始终具有真实名称,即磁盘上文件条目的名称。因此,如果没有其他可显示的内容,macOS会在任何地方显示该名称。

但是,捆绑软件内部有一个名为的信息文件Info.plist,其中包含有关捆绑软件的所有元数据。此类信息文件可以定义的一件事是显示名称。如果设置了这样的显示名称,则Finder将显示显示名称,而不是目录的真实名称。也就是说,除非在目录已重新命名,这在Finder可以检测,如果目录名称不匹配的包名称Info.plist的文件。好吧,我承认,这有点复杂。让我们尝试一个例子:

  1. 该目录名为 My App.app
  2. 软件包的名称Info.plistISMy App
  3. 束显示名称Info.plist就是My Cool App

通过这种组合,Finder会将应用程序显示为My Cool App.app(或仅My Cool App在扩展程序被隐藏时)。只要(1)和(2)名称匹配,就会显示(3)。

如果我现在将目录重命名为My Boring App.app,则Finder将显示该目录,My Boring App.app因为只要(1)和(2)名称不匹配,就会显示(1),就好像用户希望重命名他/她的应用程序一样当然,Finder应该显示用户选择的名称,这很有意义,不是吗?

已经足够复杂了吗?好吧,很抱歉,但是现在情况变得更加复杂了。Info.plist显示给用户的所有值都可以本地化,因此,如果您的系统设置为美国英语,则捆绑包的显示名称可能为My Cool App,但是如果系统设置为英国英语,则可以为My Amazing App。如果存在当前系统语言的本地化版本,则Finder将显示该本地化版本,但前提是(1)和(2)的名称匹配,否则会再次显示。

本地化是由放置完成.strings文件转换成捆到子目录的命名<x>.lproj,在那里<x>可以只是一个语言代码,例如en.lproj英语,fr.lproj法语等,但也可以是语言+国家一样en_US.lprojen_GB.lprojen_AU.lproj,等等。内部是一个名为的文件InfoPlist.strings,该文件可以覆盖文件的基本值Info.plist。如果找不到匹配的本地化,则使用来自基本本地化的值(命名为development region),该值也由Info.plist文件定义。如果未定义此类本地化,则Info.plist直接使用中的值。

如果直接或从匹配的本地显示名称(3)中的(1)和(2)匹配,则Spotlight的行为类似于Finder。如果未设置(3),则显示(1)。但是,与Finder不同.app,即使在Finder首选项中要求,它也不总是添加扩展名。我无法找到确切的行为模式,但是无论您进行了什么配置,设置的某种组合都会阻止Spotlight显示扩展。对于某些用户,可以通过更改Finder设置然后sudo mdutil -E /Terminal其中运行(对所有内容重新编制索引)进行修复。但这并不适用于所有用户,这可能与所选语言/地区有关。

基本上是一个错误。重新索引修复了它,或者无法修复它。苹果公司在某些macOS版本上改变了这种行为,此后一直保持不变……直到10.13 High Sierra。突然我所有的应用程序都.app在Spotlight中具有与我的Finder设置匹配的扩展名,而在10.12 Sierra中,尽管有了Finder设置,除非我已重命名它或除非我有多个副本,否则没有任何应用程序在Spotlight中具有扩展名。


1
自升级到macOS 10.13(High Sierra)以来,我遇到了同样的问题。苹果已经严重缺乏质量检查人员了:(
Xavier

我有一台机器显示“ .app”,而另一台则没有。我要做的就是从已经迁移过的计算机上迁移过来的。一个没有被擦拭干净并重新安装的。
Paul Tomblin's

您对“对于某些用户来说,它是固定的...”这句话的来源是什么?否则,一个很好的答案!
Erik

@Erik我正在浏览Apple支持论坛,这是建议的修复程序。几个用户回答“是,已解决”,大约相同数量的用户回答“尝试了,但没有区别”。对我来说,它没有用,所以我属于最后一类。我假设存在导致同一问题的多种原因,并且可以通过重新编制索引来解决其中的一些问题,但其他原因将无法以这种方式解决-但这只是推测。
麦基

2

当Spotlight在隐藏扩展名的设置生效之前为应用编制索引时,似乎会发生这种情况。您应该尝试为应用程序重新索引以解决此问题。

转到Spotlight首选项中的“隐私”选项卡,然后将“应用程序”目录添加到排除的位置。这应该从Spotlight索引中删除所有应用程序。然后将其从排除的位置再次删除,以便Spotlight使用正确的设置重新索引应用程序。重新索引后,应从所有结果中删除“ .app”扩展名。


我之所以对您投反对票,是因为您的回答当时纯粹是猜测,因此比评论更适合发表评论。
格里2012年

哦好的。抱歉,我不熟悉该网站的工作原理。
FrédéricDénommé2012年

没问题,欢迎光临本站。
格里2012年

1
当我更改设置以显示扩展名并为所有应用程序重新编制索引时,这似乎对我不起作用。
格里2012年

0
  1. 转到:查找器>首选项>高级
  2. 取消选中“显示所有文件扩展名”

它将立即解决.app问题


欢迎问不同。我们希望答案提供有关其为何起作用的信息。请参阅“ 如何回答”以获取有关提供优质答案的提示。-从审查。
fsb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.