I've just upgraded to XCODE 3.2.3 and upgraded my base sdk from 3.0 to 3.2 iphone sdk. After doing this I started getting a bunch of link errors with barely any info, here's what I got:
".objc_class_name_CATransition", referenced from:
".objc_class_name_NSObject", referenced from:
".objc_class_name_NSFileManager", referenced from:
".objc_class_name_NSString", referenced from:
".objc_class_name_NSError", referenced from:
".objc_class_name_CABasicAnimation", referenced from:
".objc_class_name_NSOperation", referenced from:
".objc_class_name_CJSONDeserializer", referenced from:
".objc_class_name_UIWindow", referenced from:
".objc_class_name_NSException", referenced from:
".objc_class_name_UIColor", referenced from:
".objc_class_name_CATransaction", referenced from:
".objc_class_name_CLLocationManager", referenced from:
".objc_class_name_MPMoviePlayerController", referenced from:
".objc_class_name_NSMutableSet", referenced from:
".objc_class_name_UIFont", referenced from:
".objc_class_name_NSFileHandle", referenced from:
".objc_class_name_MFMailComposeViewController", referenced from:
".objc_class_name_CAKeyframeAnimation", referenced from:
".objc_class_name_UIImage", referenced from:
".objc_class_name_UIApplication", referenced from:
".objc_class_name_UILabel", referenced from:
".objc_class_name_UIView", referenced from:
".objc_class_name_CLLocation", referenced from:
".objc_class_name_NSMutableString", referenced from:
".objc_class_name_CJSONSerializer", referenced from:
".objc_class_name_NSTimer", referenced from:
".objc_class_name_NSValue", referenced from:
".objc_class_name_NSMutableData", referenced from:
".objc_class_name_NSNumber", referenced from:
"_objc_exception_match", referenced from:
".objc_class_name_UINavigationItem", referenced from:
".objc_class_name_UIViewController", referenced from:
".objc_class_name_NSMutableArray", referenced from:
".objc_class_name_UIScreen", referenced from:
".objc_class_name_NSHTTPCookieStorage", referenced from:
".objc_class_name_MKPinAnnotationView", referenced from:
".objc_class_name_NSNotificationCenter", referenced from:
"_OBJC_CLASS_$_QWAdView", referenced from:
".objc_class_name_NSProcessInfo", referenced from:
".objc_class_name_UITableViewCell", referenced from:
".objc_class_name_CAAnimationGroup", referenced from:
".objc_class_name_NSInvocation", referenced from:
".objc_class_name_NSURL", referenced from:
".objc_class_name_NSSet", referenced from:
"_objc_exception_extract", referenced from:
".objc_class_name_UISearchBar", referenced from:
".objc_class_name_NSMutableURLRequest", referenced from:
".objc_class_name_NSRunLoop", referenced from:
".objc_class_name_NSData", referenced from:
".objc_class_name_NSDate", referenced from:
".objc_class_name_UIBarButt开发者_如何转开发onItem", referenced from:
".objc_class_name_UITableView", referenced from:
".objc_class_name_NSURLRequest", referenced from:
".objc_class_name_NSOperationQueue", referenced from:
".objc_class_name_UIActionSheet", referenced from:
".objc_class_name_UIDevice", referenced from:
".objc_class_name_MKMapView", referenced from:
".objc_class_name_UIToolbar", referenced from:
".objc_class_name_NSXMLParser", referenced from:
".objc_class_name_NSHTTPCookie", referenced from:
".objc_class_name_UIImageView", referenced from:
".objc_class_name_CAMediaTimingFunction", referenced from:
".objc_class_name_NSScanner", referenced from:
"_objc_exception_try_exit", referenced from:
".objc_class_name_NSDateFormatter", referenced from:
".objc_class_name_UIAccelerometer", referenced from:
"_objc_exception_try_enter", referenced from:
".objc_class_name_NSCharacterSet", referenced from:
".objc_class_name_UIScrollView", referenced from:
".objc_class_name_UIButton", referenced from:
".objc_class_name_UINavigationBar", referenced from:
".objc_class_name_UIAlertView", referenced from:
".objc_class_name_NSUserDefaults", referenced from:
".objc_class_name_NSThread", referenced from:
".objc_class_name_NSPropertyListSerialization", referenced from:
"_OBJC_CLASS_$_GANTracker", referenced from:
".objc_class_name_NSMutableDictionary", referenced from:
".objc_class_name_CALayer", referenced from:
".objc_class_name_UIWebView", referenced from:
".objc_class_name_NSBundle", referenced from:
".objc_class_name_NSURLConnection", referenced from:
".objc_class_name_NSAutoreleasePool", referenced from:
".objc_class_name_UIPageControl", referenced from:
".objc_class_name_NSAssertionHandler", referenced from:
".objc_class_name_MKAnnotationView", referenced from:
".objc_class_name_NSDictionary", referenced from:
".objc_class_name_NSLocale", referenced from:
".objc_class_name_NSArray", referenced from:
".objc_class_name_UIActivityIndicatorView", referenced from:
"_OBJC_CLASS_$_AdMobView", referenced from:
Any ideas?
UPDATE:
Seems like 3rd party libraries are causing the issues. These include libraries for admob, quattro, and Google Analytics. Only admob has updated their libraries so will have to remove the other ones
Same problem. Tons of link errors when compiling for simulator; device works fine.
Checked frameworks as suggested by Sim but looked fine.
Edit: All of the problems seem to be with pre-compiled 3rd party libraries (in my case that means the Facebook Three20.a library and Occipital's libRedLaserSDK.a). Anybody know if I need to use versions of those libraries recompiled for 4.0, or if there is there another fix?
Edit2: And one more clue, which suggests some of the other posters are on the right track: in my project "Groups & Files" list, all of my frameworks appear in red text. Yet if I check any one of them, the target checkbox is checked.
I don't know why this suddenly started happening when you upgraded, but these link errors mean that your link line is missing some frameworks. It would be very helpful to see the full compiler output (expand the transcript in Build Results to get this).
Looks like QuartzCore, Foundation, MediaPlayer, UIKit and others are missing, based on the symbols which are undefined. I figured this out by searching for the missing symbols (e.g. "NSOperation") in the iPhone developer site. The documentation for each function lists the framework that defines the function.
Check Frameforks is checked for the new build target. Select UIkit.framework -> Get Info and check general and targets tabs
I would try reinstalling XCode.
Backup your /Developer folder first then give these steps a go.
From the terminal use:
sudo /Developer/Library/uninstall-devtools --mode=all
to uninstall XCode and the iPhone SDKs, then delete the /Developer folder after you've done this to ensure that XCode and the iPhone SDK have been cleanly removed from your system. Reinstall Xcode afterwards.
I had this same problem a couple of days ago, but for me just restarting Xcode fixed it, I could build my app without any problems. I have no idea what caused this to happen in the first place, though.
精彩评论