我的应用程序被App Store拒绝,原因如下。
应用程序以脆弱的方式引用框架,这可能会导致 在虫子里。
应用程序使用相对路径引用以下框架:
'/库/框架/ iTunesLibrary.framework'
最佳Mac OS X开发实践建议使用(按顺序)
@ executable_path / @ loader_path / @rpath /
有关链接框架的更多信息,请参阅 以下文件:
动态库编程主题的运行路径依赖库部分
dyld(1)手册页
我已阅读建议的文件,但我不明白它们与我的项目有什么关系。我想包含iTunesLibrary.framework
,它似乎不是一个动态库。向项目添加非标准框架的最佳做法是什么?该路径应该是绝对的吗?
答案 0 :(得分:2)
这里的问题可能与框架最佳实践无关。相反,这是因为iTunes Library的怪异。
为了避免必须包含iTuneLibrary的显式路径,您需要在构建设置中将“/ Library / Frameworks”添加到项目的Framework Search Paths中。 (是的,我知道这很奇怪)。
然后库不会加载并给你一个神秘的错误:
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.)"}
这是因为您的应用未经过代码签名。您需要对其进行编码以使其正常工作。
答案 1 :(得分:0)
Go through this document。这会对你有很大的帮助
答案 2 :(得分:0)
链接框架的最佳做法:
将框架添加到链接库列表中:'Project>>构建阶段>链接Binary与Libraries'
然后您可以使用尖括号来引用库:
#import <QuartzCore/QuartzCore.h>