Unable to run test with Fonemonkey - iphone

I have downloaded Fonemokey from Gorillalogic.com and followed the Documentation provided with it to set up the fonemonkey with my project. However when I am running the project i have got following errors
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SenTestSuite", referenced from:
objc-class-ref in libFoneMonkeyOCUnit.5.5b.a(FoneMonkey+OCUnit.o)
"_OBJC_CLASS_$_SenTestObserver", referenced from:
objc-class-ref in libFoneMonkeyOCUnit.5.5b.a(FoneMonkey+OCUnit.o)
"_OBJC_CLASS_$_SenTestLog", referenced from:
objc-class-ref in libFoneMonkeyOCUnit.5.5b.a(FoneMonkey+OCUnit.o)
ld: symbol(s) not found for architecture i386
I am using xCode 4.2 and iOS5. I have already included senTestingFramework and set the Other Linker Flages to -all_load. Can anyone help me with this?

I just got stuck with the same problem - and first I thought about blaming FoneMonkey :-)
But then I tried to just add a simple TestClass that extends SenTestCase, and that turned up with the same problem (I removed the FoneMonkeyOCUnit lib prior to that test).
So I figured the problem must be within my project setup and not FoneMonkey.
It turned out my Framework searchpath was wrong - I added this to my Framework searchpath "$(SDKROOT)/Developer/Library/Frameworks"
And now it is working in xCode - next up is to make FoneMonkey work from Jenkins.

Related

Undefined symbols for architecture i386: Facebook Audience Network (help needed!)

I've read close to 50 threads on here, regarding linking frameworks to an Xcode project, but I've yet to find one that covers an issue I'm having with Facebook's Audience Network framework.
I'm using Xcode 4.2.3 (I'm on an old mac with OS X Lion - don't ask!), building for iOS 6.1, using Facebook SDK 3.2.1.
I'm trying to test banner ad formats within specific view controllers, however, getting an error every time I build the code, based exactly on the tutorials, even Facebook's sample code isn't compiling. I've added FBAudienceNetwork.framework to almost every folder on my machine, added via dragging and dropping, and via the Link Binary with Libraries option. I've tried to changing the Framework Search paths, to no avail.
I'm using the following frameworks: AdSupport, StoreKit, CoreMotion, UIKit, Foundation, CoreGraphics
Getting the following error:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CAShapeLayer", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdChoicesView.o)
"_OBJC_CLASS_$_CATransaction", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdUtility.o)
objc-class-ref in FBAudienceNetwork(FBAdMediumRectangleView.o)
"_OBJC_CLASS_$_NSURLSession", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdUtility.o)
"_kCATransactionDisableActions", referenced from:
-[FBAdMediumRectangleView updateViewForSize:view:] in FBAudienceNetwork(FBAdMediumRectangleView.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Any suggestions?
UPDATE: Added in Quartzcore.framework, and errors now reduced to;
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_NSURLSession", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdUtility.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've made Foundation.framework optional. Build settings armv7, armv7s, iOS 6.1, Simulator only. Build Active Architecture ONLY Yes/No.
I'm a software engineer on the Audience Network team at Facebook, and I have some suggestions that may help.
Try adding "QuartzCore.framework" to your target. That should resolve the _OBJC_CLASS_$_CA* linker errors. Classes with a "CA" prefix are part of QuartzCore/Core Animation.
If the "_OBJC_CLASS_$_NSURLSession" error still appears, try weak-linking the Foundation framework by setting the "Foundation.framework" to "optional" in Build Phases, Link Binary With Libraries.
You should be able to successfully build after those steps. Hope that helps!
NSURLSession was added in iOS 7.0. Any improper reference to it in your app will cause this problem when ran on a device with iOS 6.0. You need to use proper techniques to ensure the class is never referenced under iOS 6.0 or make your deployment target iOS 7.0.

Wierd error when trying to run app with AdMob

Undefined symbols for architecture i386:
"_AudioServicesPlaySystemSound", referenced from:
-[GADWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:] in libGoogleAdMobAds.a(GADWebViewDelegate.o)
"_OBJC_CLASS_$_MFMailComposeViewController", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
"_OBJC_CLASS_$_MFMessageComposeViewController", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What does it means? what do I need to do in order to fix that?
Thanks alot.
FYI - I had to add the AudioToolbox framework to get this to compile.
The solution was to add AVAudioPlayer and MessageUI frameworks. That's about it.
From where ever you have got the library that you are using, its only compiled to be used on the device.. (architecture armv7), where as you are trying to test it on the simulator (architecture i386) thus the error. So if you want to test it on the simulator, get a version of the library which is compiled for i386.
You can also combine both the libraries using lipo command and use it on any architecture..
hoping this helps.. :)

How can I install EGOPhotoViewer in my app?

I am trying to create a photo gallery in my app, I tried to use Three20 and EGOPhotoViewer. I would like to use EgoPhotoViewer but I am new at programming and I don't know how to install EgoPhotoViewer to my app. When I try to use it I got this error:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MyPhoto", referenced from:
objc-class-ref in MasterViewController.o
"_OBJC_CLASS_$_MyPhotoSource", referenced from:
objc-class-ref in MasterViewController.o
"_OBJC_CLASS_$_EGOPhotoViewController", referenced from:
objc-class-ref in MasterViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Is there any way of doing this?
If EGOPhotoViewer is just a couple of classes (which is what it sounds like), then drag them into your project and #import and #class them in the proper files. If it's a framework, then drag it into your project and make sure that it is being linked in build settings, then #import <> the necessary header.
Your undefined symbols error just means that you're trying to reference an invisible, non-existent, or out of reach class.
EDIT: For future reference because I know you're still a beginner. When you see "Undefined symbols for architecture XXXX"; the XXXX is the MOST important part. If it says armv6 or armv7, then you have a device build problem. If it says "i386", that's a simulator problem. I'm going to guess that the classes for EGOPhotoViewer are universal, but there are cases where the dunderheads decided not to build for the simulator (Dropbox anyone?) and undefined symbols for architecture i386 would come up.

xCode Route-Me Compilation for Offline Maps

I have two related problems trying to use Route-Me and I really need some help.
It works fine in xCode 3 in the Debug and Adhoc Distribution Configurations.
Problem 1 - App Crashes when the Map is used under the Release Configuration
I've checked all the build settings and all the items I think should be the same are.
Problem 2 - in xCode 4 - the Route-Me Objects are not recognised
I'd really like to upgrade to xCode 4 but keep getting the issue reported here and detailed below. I am now on xCode 4.0.2 and that has not helped. If I can do that, then hopefully I can have the main project, MapView and Proj4 as separate entities within a common workspace. That will make settings for each configuration much more manageable and less prone to problem 1.
I have searched around and cannot see clear instructions for using route-me in xCode4, or at least none that get rid of this error.
Any help would be warmly welcomed.
Chris.
xCode 4 Error - Route-Me Objects are not recognised
Undefined symbols for architecture armv6:
"_OBJC_CLASS_$_RMMarker", referenced from: objc-class-ref in OSMapViewController.o
"_OBJC_CLASS_$_RMDBMapSource", referenced from: objc-class-ref in OSMapViewController.o
"_OBJC_CLASS_$_RMMapContents", referenced from: objc-class-ref in OSMapViewController.o
ld: symbol(s) not found for architecture armv6 collect2: ld returned 1 exit status
Try starting from scratch and work your way back from there.
Here are my notes on how I got it working:
http://blueottersoftware.com/embedding-route-me-with-xcode-4-x/
-- Randy

route-me won't compile in xCode 4

I'm trying to get route-me offline maps to compile in xCode 4. They were fine in xCode 3.
I believe my issue is with architecture settings. Looking at the following post, it looks like I should change proj4 to be armv6 only and leave the main project and mapview at standard (v6 & v7).
However, I still get the following errors:
Undefined symbols for architecture armv6:
"_OBJC_CLASS_$_RMMarker", referenced from: objc-class-ref in OSMapViewController.o
"_OBJC_CLASS_$_RMDBMapSource", referenced from: objc-class-ref in OSMapViewController.o
"_OBJC_CLASS_$_RMMapContents", referenced from: objc-class-ref in OSMapViewController.o
ld: symbol(s) not found for architecture armv6
collect2: ld returned 1 exit status
Any help would be warmly welcomed.
Chris.
It seems to be a bug in XCode.
I downloaded xcode 4.0.2 and it compiles and works without any error or warnings!!
Update your xcode.