You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何为iOS应用设置与图标显示名不同的Spotlight搜索名称?

如何为应用设置不同的图标显示名称与Spotlight搜索名称

这问题我之前帮不少开发者处理过,核心就是把图标显示名称Spotlight索引的名称拆分开来,分macOS和iOS/iPadOS两种场景来操作,方法都很直接:

macOS 端操作步骤

  • 首先找到你的应用的Info.plist配置文件:
    1. 设置CFBundleDisplayNameTranslator +——这个就是主屏幕/Dock图标下方显示的短名称。
    2. 设置CFBundleNameFrench Translator +——Spotlight会自动索引这个字段,所以用户搜"french"的时候就能匹配到你的应用。
    3. (可选)如果想进一步强化搜索匹配,可以在CFBundleDescription或者NSHumanReadableCopyright字段里加入"French"这类关键词,Spotlight也会抓取这些内容。
  • 改完之后记得清理项目缓存、重新编译安装。要是Spotlight没立刻识别,打开终端执行sudo mdutil -E /强制重建系统索引就行。

iOS/iPadOS 端操作步骤

iOS的逻辑和macOS基本一致,但可以额外通过用户活动增强搜索能力:

  1. 先在Info.plist里配置基础字段:
    • CFBundleDisplayName设为Translator +(图标显示名称)
    • CFBundleName设为French Translator +(Spotlight索引用的完整名称)
  2. (可选,提升搜索精准度)用NSUserActivity注册搜索关键词:
    在应用启动的代码里(比如SceneDelegatescene(_:willConnectTo:options:)方法)添加这段代码:
    let searchActivity = NSUserActivity(activityType: "com.yourcompany.TranslatorPlus.searchable")
    searchActivity.title = "French Translator +"
    searchActivity.keywords = Set(["french", "translator", "translate"])
    searchActivity.isEligibleForSearch = true
    searchActivity.isEligibleForPrediction = true
    self.userActivity = searchActivity
    searchActivity.becomeCurrent()
    
    还要在Info.plist里添加对应的活动类型:
    <key>NSUserActivityTypes</key>
    <array>
        <string>com.yourcompany.TranslatorPlus.searchable</string>
    </array>
    
  3. 同样,改完后清理缓存重新编译,测试时给Spotlight一点索引时间。

小提醒

  • 不管哪个平台,修改Info.plist后一定要彻底重启应用,不然配置可能不会生效。
  • macOS端如果索引没更新,除了终端命令,也可以在「系统设置- Spotlight- 隐私」里添加然后移除应用所在文件夹,触发重新索引。

内容的提问来源于stack exchange,提问作者Marc Bolh

火山引擎 最新活动