2011-08-18 80 views
34

我用xcode4,在openglES项目 我添加了一些代码,在应用程序内购买从教程: http://www.raywenderlich.com/2797/introduction-to-in-app-purchases为i386硬件架构未定义的符号:“_SCNetworkReachabilitySetCallback”

我已经添加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 

如果我删除框架引用的错误是一样的。 再次添加没有任何反应... in -Xlinker 2 -framework基础框架UIKit [...]我应该看到“-framework SystemConfiguration”对吗? 为什么不在那里? 有没有人有想法?

从以项目拉起框架>建立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

我想指出我也有类似的问题。

我将一些文件复制到xcode中,并意外地选择了“ProjectTests”而不是项目。只需删除这些文件并将它们重新添加到项目中,确保选择了主项目(而不是单元测试)

0

从回购更新后,我遇到了同样的问题。

我工作的解决方案是从项目中删除所有类的引用并再次添加它们。问题在于有很大的可能性搞砸了回购同步。

+0

你是怎么做到的? – quantumpotato

10

我也有同样的问题。我直接添加了一些框架,拖放它们。

要解决这个问题,我删除了所有的人,并增加他们通过菜单目标>构建阶段,然后再通过链接二进制与图书馆添加了所有需要的框架。

之后,你的代码应该再次正常工作。

+0

+1谢谢你,它的作品....! – Dinesh

37

从构建阶段我的项目编译孔加入SystemConfiguration.framework后...

有一个有趣的...!

+1

谢谢......对我有用! –

+1

这是最正确的答案 –

+0

谢谢!这也适用于我! – ChemDev

8

很简单。

scnetworkreachability回调被标记为这意味着一些图书馆或框架文件未定义的符号丢失

前缀SC意味着系统配置

  • 点击项目名称选择摘要在右侧

  • cl ICK 链接的二进制文件和框架

  • 点击再加上它,那么你可以看到一个钻下来的框架和libaries看藏品有没有什么所谓的 systemConfigurationframework

  • 选择,然后按ok

  • 现在构建运行问题是解决

5

当我使用AFNetworking,收到这些错误进口3个框架

CFNetwork.framework 
Security.framework 
SystemConfiguration.framework 

所有错误都将消失后..享受!

5

如上所述,导入以下3个框架后,它就可以工作!

CFNetwork.framework 
    Security.framework 
    SystemConfiguration.framework 

非常感谢!

相关问题