2011-08-18 5 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"을 올바르게 볼 수 있습니까? 왜 없습니까? 누구에게 아이디어가 있습니까? ... 여전히,

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이 을 오류 :

내가이하는 오류가 그것을 처음 프레임 워크를 만드는 phases-> 라이브러리와 링크 바이너리를 구축>은 프로 젝트에서 프레임 워크를 잡아 당겨 그것은 무엇 일 수 있는가? 감사합니다.

답변

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

  • 가를 선택 systemConfigurationframework라는 것도 누르 존재하는 경우에 싫어지기 링크 바이너리와

  • 클릭을 프레임 워크 플러스 당신은 프레임 워크와 볼 libaries의 컬렉션으로 드릴을 볼 수 있습니다 확인

  • 지금 빌드실행 문제입니다 내가, AFNetworking를 사용 하였을 때 수입 3 프레임 워크

    모든 오류가 사라 것
    CFNetwork.framework 
    Security.framework 
    SystemConfiguration.framework 
    

    이러한 오류를받은 후

5

위에서 언급했듯이 다음 3 개의 프레임 워크를 가져온 후에 작동합니다!

CFNetwork.framework 
    Security.framework 
    SystemConfiguration.framework 

감사합니다.