2012-04-12 6 views
12

SystemConfigurationフレームワークを追加しました。私は3.2以上のターゲットに対して展開しています。私は何かを追加することを忘れましたか?ビルドしようとするとReachabilityクラスが追加されない

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_Reachability", referenced from: 
     objc-class-ref in AppDelegate.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

、インターネット接続やキャリアのネットワークを確認し、この_OBJC_CLASS _ $ _到達可能性は、デバイス – Charan

+1

のためにインターネットに到達可能性の問題を意味し、この上を見てくださいしてください.http://stackoverflow.com/questions/9804526/reachability-ios-5-1-ipad – sandy

答えて

41

いいえ、手がかりはすべてあなたが投稿したエラーレポートにあります。 、メッセージはAppDelegateでは、到達可能性と呼ばれるクラスのオブジェクトを参照した」

を言っている

リンク時には、プロジェクト全体のすべてのシンボルのコンパイル後に発生する(メッセージは、リンカLDからです)

"_OBJC_CLASS_$_Reachability" 

と限りリンカが到達可能性が定義されていない懸念しています。

したがって、プロジェクトに到達可能性がコンパイルされていることを確認してください。これを行うにはいくつかの方法があります。おそらく最も明確な方法は、ナビゲーションペインでプロジェクトファイル

2を選択 enter image description here

1にある

3ターゲットを選択ビルドフェーズ

4は、コンパイルソースを展開]を選択セクション

*コンパイルするソースのリストを確認してくださいあなたのケースでは、あなたの不足しているクラスのDは、Reachability.m

それが欠落している場合は、ターゲットにファイルを追加する+ボタンを使用します。

もう一つの方法は、あなたが

2は、ファイルインスペクタ]タブ

を選択するユーティリティパネル

3を開いてコンパイルされていないと思うファイルを選択

enter image description here

1にありますプロジェクト内の各ターゲットのチェックボックスが表示され、あなたの.mファイルがそれぞれ/すべてのターゲット用にコンパイルされているかどうか。

+1

私の問題を解決しました。ありがとうございます.. –

+1

+1そのような良い説明のために。 – Kuldeep

+0

ありがとうございます! – DmitryKanunnikoff

1

Reachabilityクラスをプロジェクトに含めるのを忘れているかもしれません。

0

私は、Mixpanelの最新バージョンにアップグレードしたときに同様の問題が発生しました。エラーが読み:

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_CTTelephonyNetworkInfo", referenced from: 
     objc-class-ref in Mixpanel.o 

をあなたはソースをコンパイルセクションを展開代わりに、最後のステップまでダモのソリューションをたどる、とすることができ、あなたの代わりにリンクバイナリとライブラリセクションを展開し、追加する必要がありますCoreTelephony.frameworkソースは含まれていますCTTelephonyNetworkInfo

あなたがここにAppleの公式ウェブサイト上CTTelephonyNetworkInfoクラス参照についての詳細を読むことができます:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html

関連する問題