在 10.13 或更低版本上获得对照片库的完全访问权限

Getting full access to Photos Library on 10.13 or lower

我正在尝试完全(read/write)访问照片库 - 用例是我想访问该库、create/delete 个相册并移动资产 into/out 个相册,以及将它们从库中删除。我已经采用了 MLMediaLibrary 方式,但在那种情况下我只能获得读取权限。

在新的 10.13 API 中,照片包已可供 OSX 使用,但根据文档,许多功能仍然仅适用于 iOS。特别是 OSX 中的所有 findAsset 函数都不可用。换句话说,我找不到 API 的入口点来获取 PHAssets!我曾尝试查看 MLMedia 资产,看看是否有办法将 id 迁移到照片框架中,但无济于事。也找不到与 iOS 相关的示例 not

感谢任何帮助!理想情况下寻找 Swift 解决方案,但也对 Obj-C 开放。

谢谢 E.

我有同样的问题。我曾尝试使用 MLMediaLibrary 访问照片库,但如果照片仅存储在 iCloud 中,您甚至看不到或找不到它。我尝试使用类型方法 fetchAssetsWithLocalIdentifiers:options: 来获取 Phassets,但是获取结果总是空的,因为我不知道如何获取 localidentifiers。所以这个方法很没用。我已经在 Apple 的开发者论坛上询问过,但你不会从那里的 Apple 工程师那里得到任何帮助。找了好几天了,貌似暂时不能用Photos框架访问Photos Library

照片框架在 macOS 上仅适用于受限用例:

  • 在 macOS 10.11 (El Capitan) 及更高版本中,您可以创建照片编辑扩展程序。当用户编辑照片时,它们会出现在照片应用程序中——您提供一个视图控制器,照片为您提供要编辑的(单个)photo/video 的内容,并让您return 编辑photo/video 内容.

  • 在 macOS 10.13 (High Sierra) 及更高版本中,您还可以创建照片项目扩展。当用户开始创建项目时,这些也会出现在照片应用程序中(例如书籍、日历和其他自多年前 iPhoto 1.0 以来您就可以从 Apple 订购的实体打印产品)。照片为您的扩展程序提供了用户选择的资产列表,以及对这些资产的照片数据的访问权限,以便您可以创建自己的书籍、网站、咖啡杯或任何来自它们的内容。

在这些用例之外,不支持在 macOS 中使用照片/PhotosUI(又名 PhotoKit)。链接到照片框架的应用无法访问(甚至不能只读)用户的照片库。