Я искал добавление доступа к библиотеке iTunes для Mac-приложения, которое я разрабатываю.Использование новой платформы iTunesLibrary для доступа к библиотеке iTunes на Mac OS-X
Я рассмотрел некоторые из существующих версий с открытым исходным кодом, такие как EyeTunes и iMedia, но нашел их не совсем тем, что я искал. Overkill в целом.
Итак, я попытался использовать Scripting Bridge и обнаружил, что в то время как функционирование было медленным. И поскольку мне не нужно было управлять iTunes, медленность не стоила того. Он также имел недостаток в использовании iTunes для работы. Это также немного раздражает, чтобы заставить его работать в изолированном приложении (хотя это возможно).
Итак, я, наконец, начал рулон самостоятельно, прочитав файл iTunes Library.xml. Кажется, это работает нормально. Но в процессе изучения значения ключа/ценности Distinguished Kind я наткнулся на совершенно новый, Apple предоставил iTunesLibrary.framework !!!
Beautiful - the iTunesLibrary framework docs are here.
Однако, когда я пытаюсь инициализировать структуру, используя код, как показано в опорном ссылке:
NSError * error = nil;
ITLibrary* library = [ITLibrary libraryWithAPIVersion:@"1.0" error:&error];
возвращает ноль и обеспечивает очень полезную ошибку, как так (в моя песочница приложение):
Error Domain=NSPOSIXErrorDomain Code=100001 "Could not load." UserInfo=0x1140025b0 {NSLocalizedDescription=Could not load., NSUnderlyingError=0x1026fbe20 "The operation couldn’t be completed. (OSStatus error -50.)"}
Думая, что это может быть проблема с песочницей, я также создал быструю утилиту командной строки, которая пытается инициализировать л ibrary и возвращает почти идентичную ошибку:
Failed to open library: Error Domain=NSPOSIXErrorDomain Code=100001 "Could not load." UserInfo=0x1018015b0 {NSLocalizedDescription=Could not load., NSUnderlyingError=0x103a000e0 "The operation couldn’t be completed. (OSStatus error 100005.)"}
Кто-нибудь еще пробовал эту новую структуру ITunes библиотеки с больше удачи, чем у меня было?
// EDIT: Ответ приведен ниже. Требуется подписание кода. Образец кода в ответе является удобной отправной точкой для использования фреймворка. Кроме того, в моем случае проблема заключалась также в том, что код инфраструктуры iTunesLibrary не работает, когда библиотека iTunes размещается на сетевом диске. Сделайте это немного разрывом сделок, если Apple не исправит это.
У меня такая же ошибка с кодом без песочницы, но я не знаю, как это исправить. У меня также возникли проблемы с импортом Framework. Я, наконец, получил его работу, копируя и вставляя фреймворк в мой каталог проекта и добавляя его в проект. Мне интересно, как он знает, где искать библиотеку iTunes. – abroekhof
Я собирался попробовать это, чтобы узнать некоторые цели-c, но я не могу даже добавить его правильно в свой проект. Угадай те же проблемы, что и abroekhof ... Он добавляет к проекту, но я не могу импортировать заголовок (не найден). Я видел других, использующих скриптовый мост. Это может быть способ пойти? Как вы добавили его в свой проект? –
abroekhof - Вы смогли получить библиотеку для успешной инициализации в приложении, подписанном кодом, скопировав Framework прямо в ваш проект? – sckor