使用 PHAsset 在多个设备上唯一访问 iCloud 照片

Accessing iCloud photos uniquely on multiple devices using PHAsset

有没有办法在多个设备上访问 iCloud 相册中的特定 PHAsset

我编写了一个简单的应用程序,它列出了 iCloud 共享相册中的缩略图和 .localIdentifiers,并且(自然地)它在不同的设备上显示相同的图像,但是,相同图像的 localIdentifiers 是不同的在不同的设备上(并不意外,因为它是一个 "local" 标识符)。

然而,我真正想做的是将云共享 CoreData 数据库中的记录与云中的图像相关联,而不是将图像嵌入到 CoreData 中(这是一个家谱应用程序,可能有数千张图像) - 为此,我需要一个与设备无关的唯一标识符。有办法吗?

不幸的是没有。在早期的 iOS 8 beta 中有一个云标识符(这正是您要寻找的),但后来从照片 API.

中删除了

PHAsset.cloudIdentifier 可作为私人使用 API。

let identifier = phAsset.value(forKey: "cloudIdentifier") as? String

参考iOS运行时header:https://github.com/JaviSoto/iOS10-Runtime-Headers/blob/master/Frameworks/Photos.framework/PHAsset.h