【问题标题】:XPC error when using MLMediaLibrary from command line daemon从命令行守护程​​序使用 MLMediaLibrary 时出现 XPC 错误
【发布时间】:2015-03-12 14:46:08
【问题描述】:

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

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

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

如何从命令行工具访问MLMediaLibrary

【问题讨论】:

    标签: macos iphoto


    【解决方案1】:

    为了访问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

    【讨论】:

    • 谢谢,这看起来很有帮助!一旦我有机会检查它是否适合我,我就会接受。
    • 是否可以在不对我的应用程序进行沙盒处理的情况下使用 MediaLibrary.framework,因为我必须访问一些外部存储设备(闪存驱动器等)。在这里查看我的问题:stackoverflow.com/questions/40901811/…
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多