构建10.8 SDK和CFNetwork.framework,但应用程序在OS X 10.6.8中崩溃

时间:2013-03-10 19:07:44

标签: xcode cocoa frameworks

注意:问题不重复!请先阅读几条评论!

我已经使用最新的Xcode在OSX 10.8上编写了代码,并且与独立的根级CFNetwork.framework框架(/MacOSX10.8.sdk/System/Library/Frameworks/CFNetwork.framework)相关联。虽然应用程序在10.8中运行良好,但它在OS X 10.6.8上崩溃。

在我看来(可能是错的)OSX 10.6.8上不存在CFNetwork.framework

我只能在IOS编程环境中找到它,但不能在OSX编程环境中找到它。这可能是因为OSN 10.6.8上没有CFNetwork.framework吗?如果是这样,将框架添加到项目中的正确程序是什么,这样在10.6.8中看起来不会丢失?

1 个答案:

答案 0 :(得分:1)

您可以使用10.8 SDK开发应用,并链接到根级CFNetwork.framework,但您需要确保将部署目标设置为10.6。这将确保链接器不会生成对CFNetwork.framework的强引用。

otool的输出与10.8部署进行比较:

MacPro:~ mdouma46$ otool -L /Users/mdouma46/.../CFNetwork\ Finagler 
/Users/mdouma46/.../CFNetwork\ Finagler:
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    /usr/lib/libobjc.A.dylib
    /usr/lib/libSystem.B.dylib
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

10.6部署目标:

MacPro:~ mdouma46$ otool -L /Users/mdouma46/.../CFNetwork\ Finagler 
/Users/mdouma46/.../CFNetwork\ Finagler:
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    /usr/lib/libobjc.A.dylib
    /usr/lib/libSystem.B.dylib
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation