我正在使用当前正在升级到iOS 6的项目中最优秀的AFNetworking
库。我正处于升级过程中,减少了编译时收到的一堆警告针对iOS 6 SDK。
SystemConfiguration framework not found in project, or not included in
precompiled header. Network reachability functionality will not be available.
和
MobileCoreServices framework not found in project, or not included in
precompiled header. Automatic MIME type detection when uploading files
in multipart requests will not be available.
但事情是:我的所有libraries
中都添加了targets
这两个。我想以正确的方式摆脱那些警告;我不会修改AFNetworking
个文件。我怀疑这是Xcode很傻。这无疑是一件小事,但留下警告是不好的做法。
如何删除这些警告?
我尝试重启Xcode并进行清理。两者都不起作用。
答案 0 :(得分:75)
我不确定您是否使用CocoaPods,但这是在AFNetworking Github page上跟踪的已知问题。
我能够通过将正确的import语句直接添加到我的`PROJECTNAME-Prefix.pch来修复此问题,我将其更改为此。
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#endif
如果您还有其他内容,请不要将其删除。只需添加SystemConfiguration和MobileCoreServices的导入。
对于OS X:
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <CoreServices/CoreServices.h>
#endif
答案 1 :(得分:14)
如果您正在使用swift:Xcode在编译Prefix.pch
文件之前编译Swift代码,那么即使您的.pch文件中包含正确的导入,您也会收到这些警告。我发现的最佳解决方案是在导入AFNetworking之前将它们添加到项目的Bridging-Header.h
文件中:
#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import "AFNetworking.h"
答案 2 :(得分:1)
这已经得到了解答,但是,如果你正在开发一个可能为OS X和iOS编译的命令行工具(肯定不是App Store),你可以添加:
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <SystemConfiguration/SystemConfiguration.h>
#if TARGET_OS_IPHONE
#import <MobileCoreServices/MobileCoreServices.h>
#elif TARGET_OS_MAC
#import <CoreServices/CoreServices.h>
#endif
#endif
通过评估您正在编译的目标,它将包含正确的文件。