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

时间:2017-10-13 14:01:30

标签: macos photosframework

我正在尝试对照片库进行完整(读/写)访问 - 用例是我想访问库,创建/删除相册并将资产移入/移出相册,以及从中删除它们图书馆。我已经走了MLMediaLibrary的方式,但在这种情况下,我只能获得读取权限。

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

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

由于 即

2 个答案:

答案 0 :(得分:3)

我有同样的问题。我曾尝试使用MLMediaLibrary访问照片库,但如果照片仅存储在iCloud中,您甚至不会看到或找到它。我曾尝试使用类型方法 fetchAssetsWithLocalIdentifiers:options:来获取Phassets,但获取结果始终为空,因为我不知道如何获取localidentifier。所以这种方法很无用。我已经在Apples开发者论坛中询问过这个问题,但是你不会得到Apple工程师的任何帮助。我已经搜索了好几天,但似乎你现在无法使用照片框架访问照片库。

答案 1 :(得分:0)

照片框架仅在受限的使用情况下可在macOS上使用:

  • 在macOS 10.11(El Capitan)和更高版本中,您可以创建照片编辑扩展。当用户去编辑照片时,这些将显示在“照片”应用程序中-您提供了一个视图控制器,而照片为您提供了要编辑的(单个)照片/视频的内容,并允许您返回编辑后的照片/视频内容。

  • 在macOS 10.13(High Sierra)和更高版本中,您还可以创建Photo Project Extensions。当用户创建项目时,这些内容也会显示在“照片”应用程序中(例如,自多年前iPhoto 1.0以来,您就可以从Apple订购的书籍,日历和其他物理打印产品)。 “照片”为扩展程序提供了用户选择的资产列表,并可以访问这些资产的照片数据,以便您可以创建自己的书,网站,咖啡杯或其中的任何内容。

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