TL; DR
Về cơ bản, đó là một lỗi hoặc sửa lỗi được giới thiệu trong macOS 10.13 High Sierra: Spotlight hiện tôn trọng cài đặt Finder để hiển thị các phần mở rộng tệp. Vô hiệu hóa cài đặt đó sẽ xóa phần mở rộng .app khỏi Spotlight.
Câu trả lời đầy đủ
Tôi biết đây là một câu hỏi rất cũ, nhưng tôi vừa có một déjà-vu trong 10.13 High Sierra; khác với câu hỏi này nhưng có một số điểm tương đồng, vì vậy tôi đã tìm kiếm nó và tình cờ thấy câu hỏi này và đây là câu trả lời của tôi:
Các ứng dụng trong các thư mục thực tế được hiển thị như thể chúng là một tệp duy nhất; Apple gọi đó một bó (mặc dù Finder đặt tên nó là " trọn gói " như trong " Show Package Contents " trong menu ngữ cảnh). Không chỉ các ứng dụng là gói, Apple cũng sử dụng các gói cho khung, plugin, tiện ích mở rộng ứng dụng, dịch vụ XPI, một số gói trình cài đặt, cũng như định dạng lưu trữ dữ liệu nếu dữ liệu được lưu trữ bao gồm nhiều tệp nhưng sẽ xuất hiện dưới dạng một tệp (ví dụ: một tài liệu RTF với hình ảnh có thể được lưu trữ dưới dạng gói RTFD). Gói luôn có tên thật, tên của mục nhập tệp trên đĩa. Vì vậy, nếu không có gì khác để hiển thị, macOS hiển thị tên đó ở mọi nơi.
Tuy nhiên, các gói có một tệp thông tin bên trong, được đặt tên Info.plist
, chứa tất cả các loại dữ liệu meta về gói. Một điều mà một tệp thông tin có thể định nghĩa là Tên hiển thị . Nếu tên hiển thị như vậy được đặt, Finder sẽ hiển thị tên hiển thị và không phải tên thật của thư mục. Đó là, trừ khi thư mục đã được đặt tên lại, mà Finder có thể phát hiện nếu tên thư mục không khớp với tên gói trong Info.plist
tệp. Chà, tôi thừa nhận, nó hơi phức tạp. Hãy thử với một ví dụ:
- Thư mục được đặt tên
My App.app
- Tên gói trong
Info.plist
làMy App
- Tên hiển thị bó trong
Info.plist
làMy Cool App
Với sự kết hợp đó, Finder sẽ hiển thị ứng dụng dưới dạng My Cool App.app
(hoặc chỉ My Cool App
khi các tiện ích mở rộng bị ẩn). Miễn là (1) và (2) trùng khớp về tên, (3) được hiển thị.
Nếu bây giờ tôi đổi tên thư mục thành My Boring App.app
, thì Finder sẽ hiển thị My Boring App.app
ngay sau khi (1) và (2) không khớp với tên, (1) được hiển thị, như thể người dùng muốn đổi tên ứng dụng của mình Tất nhiên, Finder sẽ hiển thị tên người dùng đã chọn, có ý nghĩa không?
Đủ phức tạp rồi? Vâng, tôi xin lỗi, nhưng nó thậm chí còn phức tạp hơn bây giờ. Tất cả các giá trị Info.plist
được hiển thị cho người dùng đều có thể được bản địa hóa , vì vậy nếu hệ thống của bạn được đặt thành US English, tên hiển thị theo gói có thể là My Cool App
, nhưng nếu hệ thống được đặt thành UK English, thì có thể là vậy My Amazing App
. Nếu bản địa hóa tồn tại cho ngôn ngữ hệ thống hiện tại, Finder sẽ hiển thị bản địa hóa đó, nhưng một lần nữa, chỉ khi tên của (1) và (2) khớp, nếu không (1) sẽ giành lại.
Địa hóa được thực hiện bằng cách đặt .strings
các file vào bó vào thư mục con được đặt tên <x>.lproj
, nơi <x>
chỉ có thể là một mã ngôn ngữ, ví dụ như en.lproj
tiếng Anh, fr.lproj
tiếng Pháp, vv Tuy nhiên, trong cũng có thể là ngôn ngữ + nước, giống như en_US.lproj
, en_GB.lproj
, en_AU.lproj
, và vân vân. Bên trong là một tệp có tên InfoPlist.strings
và tệp này có thể ghi đè các giá trị cơ bản của Info.plist
tệp. Nếu không tìm thấy nội địa hóa phù hợp, các giá trị từ nội địa hóa cơ sở được sử dụng (tên vùng phát triển ) cũng được xác định bởi Info.plist
tệp. Nếu không có nội địa hóa như vậy được xác định, các giá trị từ Info.plist
được sử dụng trực tiếp.
Spotlight hoạt động giống như Finder, nếu (1) và (2) khớp với tên (3) được hiển thị, trực tiếp hoặc từ nội địa hóa phù hợp. Nếu (3) không được đặt, (1) được hiển thị. Nhưng không giống như Finder, nó không phải lúc nào cũng thêm .app
tiện ích mở rộng, ngay cả khi được yêu cầu trong tùy chọn Finder. Tôi chưa thể tìm thấy mẫu hành vi chính xác, nhưng một sự kết hợp thiết lập nhất định sẽ ngăn Spotlight hiển thị tiện ích mở rộng, bất kể bạn đã định cấu hình gì. Đối với một số người sử dụng nó được cố định bằng cách thay đổi các thiết lập Finder và sau đó chạy sudo mdutil -E /
trong Terminal
(mà tái chỉ mục tất cả mọi thứ). Nhưng nó không hoạt động đối với tất cả người dùng, có thể liên quan đến ngôn ngữ / khu vực đã chọn.
Về cơ bản đó là một lỗi. Hoặc lập chỉ mục lại sửa nó hoặc nó không thể được sửa chữa. Và hành vi đã được Apple thay đổi tại một số phiên bản macOS và không đổi sau đó ... tức là cho đến 10.13 High Sierra. Thật bất ngờ, tất cả các ứng dụng của tôi đều có .app
tiện ích mở rộng trong Spotlight, phù hợp với cài đặt Finder của tôi, trong khi ở 10.12 Sierra không có ứng dụng nào có tiện ích mở rộng trong Spotlight, mặc dù cài đặt Finder, trừ khi tôi đã đổi tên hoặc trừ khi tôi có nhiều bản sao nói dối.