3

我的应用被 App Store 拒绝,原因如下。

该应用程序以脆弱的方式引用框架,这可能会导致错误。

该应用程序使用相对路径引用以下框架:

'/图书馆/框架/iTunesLibrary.framework'

最佳 Mac OS X 开发实践建议使用(按顺序)

@executable_path/ @loader_path/ @rpath/

有关链接框架的更多信息,请参阅以下文档:

  • 动态库编程主题的运行路径依赖库部分

  • dyld(1) 手册页

我已阅读建议的文件,但我不明白它们与我的项目有何关系。我正在尝试包含iTunesLibrary.framework,它似乎不是动态库。向项目添加非标准框架的最佳实践是什么?那条路径应该是绝对的吗?

4

3 回答 3

2

您的问题可能与框架最佳实践无关。而是因为 iTunes 库的怪异。

为了避免必须包含指向 iTuneLibrary 的显式路径,您需要在构建设置中将“/Library/Frameworks”添加到项目的框架搜索路径中。(是的,我知道这很奇怪)。

然后库将不会加载并给你一个神秘的错误:

Could Not load iTunes Library because of error: Error Domain=NSPOSIXErrorDomain Code=100001 "Could not load." UserInfo=0x10340eaa0 {NSLocalizedDescription=Could not load., NSUnderlyingError=0x10341c610 "The operation couldn’t be completed. (OSStatus error 100005.)"}

这是因为您的应用没有经过代码签名。您需要对其进行代码签名以使其正常工作。

来源和示例:https ://github.com/zadr/iTunesLibraryExample

于 2013-07-19T16:32:10.263 回答
0

链接框架的最佳实践:

将框架添加到链接库列表中:“项目 >> 构建阶段 > 将二进制文件与库链接”

然后您可以使用尖括号引用库:

#import <QuartzCore/QuartzCore.h>
于 2013-06-14T19:47:05.473 回答
0

浏览这个文件。这对你有很大帮助

于 2013-06-13T05:42:58.440 回答