2011-08-18 4 views
34

「_SCNetworkReachabilitySetCallbackは」、openglESプロジェクト に私はチュートリアルから、アプリ内購入のためのコードを追加しました:私はSystemConfiguration.framework追加した http://www.raywenderlich.com/2797/introduction-to-in-app-purchases未定義のシンボル:私はxcode4を使用

が、このエラーが発生します:私は、フレームワークの参照を削除した場合

Ld /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest normal i386 
    cd /Users/Eros/Desktop/blatestDB 
    setenv MACOSX_DEPLOYMENT_TARGET 10.6 
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Desktop/blatestDB -filelist /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Intermediates/blatest.build/Debug-iphonesimulator/SLQTSOR.build/Objects-normal/i386/blatest.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreGraphics -framework OpenAL -lz -framework MediaPlayer -framework AVFoundation -framework GameKit -framework StoreKit -o /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest 

Undefined symbols for architecture i386: 
    "_SCNetworkReachabilitySetCallback", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
     -[Reachability stopNotifier] in Reachability.o 
    "_SCNetworkReachabilityGetFlags", referenced from: 
     -[Reachability currentReachabilityStatus] in Reachability.o 
     -[Reachability connectionRequired] in Reachability.o 
    "_SCNetworkReachabilityCreateWithName", referenced from: 
     +[Reachability reachabilityWithHostName:] in Reachability.o 
    "_SCNetworkReachabilityCreateWithAddress", referenced from: 
     +[Reachability reachabilityWithAddress:] in Reachability.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

エラーは同じです。 何も起こりません... -Xlinker 2 -framework Foundation -framework UIKit [...]「-framework SystemConfiguration」が正しく表示されますか? なぜですか? 誰にもアイデアはありますか?プロジェクト - >ライブラリーは、それ私はこのerrosを持って第1のフレームワーク作りとphases->リンクバイナリビルドからのフレームワーク引き上げ

Ld /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest normal i386 
    cd /Users/Eros/Desktop/blatestDB 
    setenv MACOSX_DEPLOYMENT_TARGET 10.6 
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Desktop/blatestDB -filelist /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Intermediates/blatest.build/Debug-iphonesimulator/SLQTSOR.build/Objects-normal/i386/blatest.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework SystemConfiguration -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreGraphics -framework OpenAL -lz -framework MediaPlayer -framework AVFoundation -framework GameKit -framework StoreKit -o /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest 

ld: warning: ignoring file /Users/Eros/Desktop/blatestDB/SystemConfiguration.framework/SystemConfiguration, missing required architecture i386 in file 
Undefined symbols for architecture i386: 
    "_SCNetworkReachabilitySetCallback", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
     -[Reachability stopNotifier] in Reachability.o 
    "_SCNetworkReachabilityGetFlags", referenced from: 
     -[Reachability currentReachabilityStatus] in Reachability.o 
     -[Reachability connectionRequired] in Reachability.o 
    "_SCNetworkReachabilityCreateWithName", referenced from: 
     +[Reachability reachabilityWithHostName:] in Reachability.o 
    "_SCNetworkReachabilityCreateWithAddress", referenced from: 
     +[Reachability reachabilityWithAddress:] in Reachability.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

SystemConfigurationはまだそこに、そこに誤りであるが... それは何でしょうか? ありがとう

答えて

51

が見つかりました! SystemConfiguration.frameworkを自分のプロジェクトフォルダにコピーしました(xcodeから追加したときにボックスをチェックします)。 私のプロジェクトでそのフォルダを削除すると、すぐにコンパイルされます

0

私はこの問題をsimularにも知りたいと思います。

私はいくつかのファイルをxcodeにコピーして、プロジェクトの代わりに誤って "ProjectTests"を選択しました。ファイルを削除してプロジェクトに追加し直して、メインプロジェクト(単体テストではない)が選択されていることを確認してください。

0

私はrepoからのアップデート後も同じ問題がありました。

私のために働いた解決策は、すべてのクラスのプロジェクトから参照を削除し、再度追加することでした。問題は、レポ同期を台無しにする大きな可能性があることです。

+0

どうしましたか? – quantumpotato

10

私も同じ問題がありました。私はドラッグアンドドロップでいくつかのフレームワークを直接追加しました。それを解決するには

は、私はそれらのすべてを削除して、もう一度リンクバイナリとライブラリを介してすべての必要なフレームワークを追加したメニューターゲット>フェーズその後、との構築を介してそれらを追加しました。

この後、コードは再び正常に動作するはずです。私のプロジェクトはうまくコンパイルビルドフェーズからSystemConfiguration.frameworkを追加した後

+0

+1ありがとうございました! – Dinesh

37

...

は楽しみを持っています...!

+1

ありがとう...私のために働いた! –

+1

これが最も正しい答えです。 –

+0

ありがとう!!!これも私のために働いた! – ChemDev

8

簡単です。

プレフィックス不足している

scnetworkreachabilityコールバックは、いくつかのライブラリやフレームワークのファイルを意味し、未定義のシンボルとしてラベル付けされscが概要を選択しシステム構成にプロジェクト名に

  • クリックを意味し右側に

  • cl ICK リンクのバイナリと、あなたはフレームワークとするライブラリのコレクションをドリルダウン見ることができます

  • クリックプラスその上をフレームワーク

  • systemConfigurationframeworkと呼ばれるものがそれを選びがあるかどうかを確認ok

  • run問題は次のとおりです。私は、AFNetworkingを使用していた場合は、インポート3つのフレームワーク

    すべてのエラーは消えます
    CFNetwork.framework 
    Security.framework 
    SystemConfiguration.framework 
    

    をこれらのエラーを取得した後

5

上記のように、次の3つのフレームワークをインポートした後で動作します。

CFNetwork.framework 
    Security.framework 
    SystemConfiguration.framework 

ありがとうございます!

関連する問題