我正在为iPhone OS 3.1.3开发,我需要使用Dropbox API。
问题是Dropbox API至少需要iOS 4.2。确定。
我决定保存在3.1.3下使用该程序的可能性,但如果它是4.2或更高,则会有Dropbox功能。
要使用Dropbox框架,我需要链接另一个框架:
我做到了。
当我将Dropbox.framework链接到我的项目时,该程序在iPhone模拟器上运行良好,但无法在我的iPhone 3.1.3上启动。输出中有错误:
dyld:未找到符号:_kSecAttrAccessible 参考自:/ var / mobile / Applications / C1FC10E5-0A36-4DEB-BD27-5028C205C89D / Bus Time.app/Bus Time 预计在:/System/Library/Frameworks/Security.framework/Security 在/ var / mobile / Applications / C1FC10E5-0A36-4DEB-BD27-5028C205C89D / Bus Time.app/Bus Time
所以问题是:
我可以在程序启动时检测iOS版本并取消链接框架吗? 或者你能提供另一种使用dropbox for 3.1.3的方法吗?
感谢您的回答。我很感激。
答案 0 :(得分:2)
答案 1 :(得分:2)
您无法在运行时以编程方式取消链接框架。
您可以在运行时以编程方式链接框架,例如通过使用NSBundle API,或dlopen,或其他各种方式。如果这样做,则必须手动加载所需的ObjC对象和/或C符号。
或者,您可以弱化链接框架,这使运行时为您完成大部分工作。如果它在那里,它将在启动时加载,并且它的所有ObjC对象和C符号都可用。否则,它的所有ObjC对象和C符号都将为null。因此,您需要做的就是检查null以确定是否运行需要该框架的代码。