I'm writing a command-line daemon to read images from iPhoto.
I can init and load an MLMediaLibrary
fine from a full-blown Cocoa application, created using the Xcode project creation tools. However, when I try and do the same from a command-line tool (also created in Xcode), the following error appears in Xcode console window:
MLMediaLibrary error obtaining remote object proxy: Error Domain=NSCocoaErrorDomain Code=4097 "Couldn’t communicate with a helper application."
How can I access MLMediaLibrary
from a command-line tool?
I don't think Konstantin's statement is correct:
In order to access MLMediaLibrary your application has to be sandboxed and codesigned.
Per my test, I can use
MediaLibrary.framework
within my application and my application is not code signed, it doesn't have an entitlements file, so it is abviously not a sandboxed app.In order to access
MLMediaLibrary
your application has to be sandboxed and codesigned.Update
It seems like you also have to add some permanent read-only access entitlements to your .entitlements file.
If you want to access Photos, iPhoto or Aperture libraries:
If you want to access iMovie and FinalCut:
If you want to access iTunes or Logic:
You can read about my poor experience with a MediaLibrary framework here: https://devforums.apple.com/message/1125821