iOS 搜索的应用名称可以与 CFBundleDisplayName 不同吗?

Posted

技术标签:

【中文标题】iOS 搜索的应用名称可以与 CFBundleDisplayName 不同吗?【英文标题】:Can app name for iOS Search be different than CFBundleDisplayName? 【发布时间】:2019-04-05 14:27:58 【问题描述】:

我在应用商店中有一个名为“法语翻译+”的应用。

应用图标下方空间不足,无法显示整个名称,因此我设置了 CFBundleDisplayName = "Translator +"。

但是,当我在 ios 搜索中键入“法语”时,我的应用不会出现在应用部分的结果中。

如何在应用图标下方显示“翻译+”时让 iOS 搜索索引“法语翻译+”?

【问题讨论】:

查看这个问题的答案***.com/questions/32799748/… Core Spotlight 框架为应用程序内的数据编制索引,例如法语词典中的“voiture”条目。如上所述,它似乎不允许将术语添加到应用标题的搜索索引中。 我看到你实际上在几个月前在***.com/questions/48343980/… 上问过这个问题,并且那个时候回答的人给你的答案几乎和我给的一样你今天。这些答案有问题吗? How can I choose a different iOS app name for Spotlight?的可能重复 【参考方案1】:

问题已经在Specify Spotlight keywords iOS 9中回答了

正如您所指出的,Core Spotlight 为应用程序中的数据编制索引。 提供的数据。因此,您需要做的就是向它提供一些数据,以便 Spotlight Search 可以找到您的应用程序。

将此添加到 application(_:didFinishLaunchingWithOptions:) 对我有用:

let attributeSet = CSSearchableItemAttributeSet(itemContentType: "application")
attributeSet.title = "French Translator"
attributeSet.keywords = ["french", "translation", "translator"]
attributeSet.contentDescription = "French Language Translation App"

let item = CSSearchableItem(uniqueIdentifier: "5C0B7719-3BE7-4441-892D-A786AA431BDD", domainIdentifier: nil, attributeSet: attributeSet)
CSSearchableIndex.default().indexSearchableItems([item]) 
  print("Finished indexing with \(String(describing: $0))")

【讨论】:

这对数据是正确的。但是,结果显示在下方,而不是在应用程序部分。

以上是关于iOS 搜索的应用名称可以与 CFBundleDisplayName 不同吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS应用程序:将旧应用程序名称保留为关键字?

如何从 iOS 应用程序更改 RFDuino 设备名称?

修改BLE设备名称

如何使用搜索栏搜索多个视图? (iOS 斯威夫特)

IOS应用名称

将 Firebase 查询与 GeoQuery 相结合,按名称搜索附近区域的帖子