我有一个名为 App 1 的应用,我在CFBundleDisplayName
上将该名称更改为 App 2 ,并将搜索关键字属性定义为以下: / p>
if let displayName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String {
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeData as String)
attributeSet.title = displayName
attributeSet.contentDescription = ""
attributeSet.keywords = ["App 1", "App 2"]
let item = CSSearchableItem(uniqueIdentifier: "0", domainIdentifier: Bundle.main.bundleIdentifier, attributeSet: attributeSet)
CSSearchableIndex.default().indexSearchableItems([item])
}
当我安装了 App 1 并将其更新为 App 2 时,主屏幕上的显示名称正确,即 App 2 。但是,当我在Spotlight上搜索应用1 或应用2 时,该应用始终会显示旧名称应用1 。
当未在设备上安装App时,我安装了新版本的 App 2 ,但一切正常,Spotlight将显示正确的名称。
此外,当我重新启动设备时,一切恢复正常!
我不确定Spotlight的工作方式!但是是否有任何缓存或要处理的东西?