5

我正在编写一个命令行守护程​​序来从 iPhoto 读取图像。

MLMediaLibrary我可以从使用 Xcode 项目创建工具创建的成熟 Cocoa 应用程序中初始化和加载罚款。但是,当我尝试从命令行工具(也在 Xcode 中创建)执行相同操作时,Xcode 控制台窗口中出现以下错误:

MLMediaLibrary error obtaining remote object proxy: Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper application."

如何MLMediaLibrary从命令行工具访问?

4

2 回答 2

8

为了访问MLMediaLibrary您的应用程序,必须对应用程序进行沙盒化和代码签名。

更新

似乎您还必须在 .entitlements 文件中添加一些永久只读访问权限。

如果您想访问照片、iPhoto 或 Aperture 图库:

<key>com.apple.security.assets.pictures.read-only</key>
<true/>

如果您想访问 iMovie 和 FinalCut:

<key>com.apple.security.assets.movies.read-only</key>
<true/>

如果您想访问 iTunes 或 Logic:

<key>com.apple.security.assets.music.read-only</key>
<true/>

你可以在这里阅读我对 MediaLibrary 框架的糟糕体验: https ://devforums.apple.com/message/1125821

于 2015-04-14T11:21:53.493 回答
-2

我不认为康斯坦丁的说法是正确的:In order to access MLMediaLibrary your application has to be sandboxed and codesigned.

根据我的测试,我可以MediaLibrary.framework在我的应用程序中使用,并且我的应用程序没有代码签名,它没有权利文件,所以它显然不是沙盒应用程序。

于 2016-12-01T14:53:31.300 回答