web-dev-qa-db-ja.com

AFNetworkingでコンパイラの警告が表示されますが、表示されるべきではありません。どうすれば修正できますか?

現在iOS 6にアップグレードしているプロジェクトで最も優れたAFNetworkingライブラリを使用しています。アップグレードの最中です。 iOS 6 SDK。

AFNetworkingでは、すべてのターゲットで2つの警告が表示されます。

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.

ただし、これは次のとおりです。これら2つのlibrariesareはすべてのtargetsに追加されます。これらの警告を適切な方法で削除したいのですが。 AFNetworkingファイルは変更しません。 Xcodeがばかげているのではないかと思います。確かに小さなことですが、警告を残すことは悪い習慣です。

これらの警告を削除するにはどうすればよいですか?

Xcodeを再起動してクリーニングしてみました。どちらも機能しません。

31
ageektrapped

CocoaPods を使用しているかどうかはわかりませんが、これはAFNetworking Githubページ で追跡されている既知の問題です。

これを修正するには、正しいインポートステートメントを `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
75
Keith Smiley

Swiftを使用している場合:XcodeはPrefix.pchファイルがコンパイルされる前にSwiftコードをコンパイルするため、正しいインポートが.pchファイルにある場合でもこれらの警告が表示されます。私が見つけた最良の解決策は、AFNetworkingをインポートする前に、それらをプロジェクトのBridging-Header.hファイルに追加することです。

#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import "AFNetworking.h"
14
Mike Akers

これはすでに回答されていますが、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

コンパイル先のターゲットを評価すると、適切なファイルが含まれます。

1
TCB13