gpt4 book ai didi

objective-c - 使用新的 iTunesLibrary 框架访问 Mac OS-X 上的 iTunes 库

转载 作者:太空狗 更新时间:2023-10-30 03:28:43 24 4
gpt4 key购买 nike

我一直在考虑将 iTunes 资料库访问添加到我正在开发的 Mac 应用程序中。

我查看了一些现有的开源实现,例如 EyeTunesiMedia - 但发现它们并不是我想要的。总的来说矫枉过正。

所以我尝试使用 Scripting Bridge ,并发现虽然功能正常但速度很慢。而且由于我并不真正需要控制 iTunes,所以速度缓慢是不值得的。它也有依赖 iTunes 运行的缺点。让它在沙盒应用程序中工作也有点烦人(尽管可能。)

所以我终于开始通过阅读 iTunes Library.xml 文件来推出自己的作品。这似乎工作正常。但是在调查 Distinguished Kind 键/值的含义的过程中,我偶然发现了一个全新的 Apple 提供的 iTunesLibrary.framework !!!

美丽 - the iTunesLibrary framework docs are here.

但是,当我尝试使用引用链接中所示的代码初始化框架时:

NSError * error = nil;
ITLibrary* library = [ITLibrary libraryWithAPIVersion:@"1.0" error:&error];

它返回 nil 并提供非常有用的错误,就像这样(在我的沙盒应用程序中):

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.)"}

认为这可能是沙盒问题,我还创建了一个快速命令行实用程序来尝试初始化库,但它返回了一个几乎相同的错误:

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 库框架?

//编辑: 下面的答案是正确的。代码签名是必需的。答案中的示例代码是使用该框架的便捷起点。此外,就我而言,问题还在于当 iTunes 库托管在网络驱动器上时,iTunesLibrary 框架代码似乎无法正常工作。除非 Apple 修复它,否则这会有点破坏交易。

最佳答案

您需要使用来自 Mac Developer Program 的证书对您的应用进行代码签名。

它没有在任何地方记录,但是,我怀疑添加这个要求是因为 iTunes 云是一个需要访问用户帐户的网络服务。

//编辑:除了如上所述在项目设置中设置CODE_SIGN_IDENTITY外,您还需要添加/Library/Frameworks 到项目设置中的 FRAMEWORK_SEARCH_PATHS,这样 Xcode 就会知道在哪里寻找 #import。

//编辑 2:我写了一个快速的小示例应用程序来展示如何使用 iTunesLibrary,因为 Apple 的示例代码和文档相当稀疏:https://github.com/zadr/iTunesLibraryExample

关于objective-c - 使用新的 iTunesLibrary 框架访问 Mac OS-X 上的 iTunes 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16597284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com