35

私はxcode4を使用しています。openglESプロジェクトでは、チュートリアルからアプリ内購入用のコードを追加しました: http ://www.raywenderlich.com/2797/introduction-to-in-app-purchases

SystemConfiguration.frameworkを追加しましたが、次のエラーが発生します。

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

フレームワーク参照を削除しても、エラーは同じです。再度追加しても何も起こりません...-Xlinker2 -framework Foundation -framework UIKit [...]「-frameworkSystemConfiguration」が表示されますか?なぜそこにいないのですか?誰かアイデアがありますか?

プロジェクトからフレームワークをプルアップ->ビルドフェーズ->バイナリをライブラリにリンクして、このエラーが発生した最初のフレームワークにします。

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がありますが、エラーはまだあります...それは何でしょうか?ありがとう

4

8 に答える 8

51

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

于 2011-08-19T12:47:25.587 に答える
38

SystemConfiguration.frameworkビルドフェーズから追加した後、私のプロジェクトはうまくコンパイルされます...

楽しむ...!

于 2013-02-07T12:46:39.353 に答える
10

私も同じ問題を抱えていました。フレームワークをドラッグアンドドロップして直接追加しました。

これを解決するために、それらをすべて削除し、 [ターゲット]> [ビルドフェーズ]メニューから追加してから、 [バイナリとライブラリのリンク]から必要なすべてのフレームワークを再度追加しました。

この後、コードは再び正常に機能するはずです。

于 2012-03-31T08:47:01.917 に答える
8

簡単だ。

scnetworkreachabilityコールバックは、一部のライブラリまたはフレームワークファイルが欠落していることを意味する未定義のシンボルとしてラベル付けされています

プレフィックスscシステム構成を意味します

  • プロジェクト名をクリックし、右側の[概要]を選択します

  • リンクのバイナリとフレームワークをクリックします

  • プラスをクリックすると、フレームワークのコレクションのドリルダウンが表示され、ライブラリがsystemConfigurationframeworkと呼ばれるものがあるかどうかを確認 できます。

  • それを選択して[OK]を押します

  • 今、ビルドして実行すると、問題は解決します

于 2013-04-09T04:46:55.277 に答える
5

AFNetworkingを使用していたときに、これらのエラーが発生した後、3つのフレームワークがインポートされました

CFNetwork.framework
Security.framework
SystemConfiguration.framework

すべてのエラーがなくなります..お楽しみください!!!

于 2013-11-19T09:28:07.100 に答える
5

前述のように、次の3つのフレームワークをインポートすると、機能します。

    CFNetwork.framework
    Security.framework
    SystemConfiguration.framework

どうもありがとう!

于 2013-12-06T05:01:27.493 に答える
0

私もこれと同じような問題を抱えていることを指摘したいと思います。

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

于 2012-02-28T17:41:35.830 に答える
0

リポジトリからの更新後も同じ問題が発生しました。

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

于 2012-03-29T20:15:00.073 に答える