iOS/macOS 云端共享相册中的照片如何附加短数据?

How to attach a short data to a photo in iOS/macOS cloud shared album?

我正在构建一个应用程序,通过照片应用程序的云共享相册在 iOS/macOS 用户之间共享照片。我需要用一些带有应用程序特定参数的数字来描述每张照片。

我正在研究几个想法,none 其中有效:

  1. 将数字(或字符串)写入 EXIF 或 IPTC 元数据字段

    • 遗憾的是,Apple 云共享相册不包含用户可写的元数据字段
  2. 在照片文件名中插入数字,例如IMG_1234-i1-i2-...-iN.JPEG

    • 很遗憾,我找不到在“照片”应用中更改照片文件名的方法。
  3. 在 iCloud 中并行保存整数和照片标识符,因此可以使用照片标识符在每个设备上检索数据

    • 我假设 PHObject.localIdentifier 在不同设备上读取的云共享相册不会持久存在。我没有检查这个,但是为什么 identifier 会被称为 local?

iOS/macOS相册应用的云共享相册中的照片,有什么方法可以绑定少量数据吗?

根据我在 中找到的私有 API 的描述,我创建了以下 PHAsset 扩展:

extension PHAsset {
    var cloudIdentifier: String {
        return (self.value(forKey: "cloudIdentifier") as? String) ?? "?"
    }
}

您现在可以从 PHAsset 实例获得的 cloudIdentifier 在共享同一相册的任何设备上的整个云中持久存在。使用持久性 PHAsset 标识符,可以从最初的问题中实施解决方案 #3。