Undefined symbols for architecture x86_64 in ios - ios

I am getting this error when i run it on iPhone 5s simulator. It executes normally in lower versions of iPhone 5s. In my app i am using 3rd party lib CompuwareUEM. And also added all the files and lib file related to CompuwareUEM and it is compatible for 64bit.
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_CompuwareUEM", referenced from:
objc-class-ref in AppDelegate.o
objc-class-ref in SplashScreenViewController.o
objc-class-ref in CreateProfileViewController.o
objc-class-ref in MyTripsViewController.o
objc-class-ref in SettingsViewController.o
objc-class-ref in TrackingViewController.o
objc-class-ref in UserloginViewController.o
...
"_OBJC_CLASS_$_UEMAction", referenced from:
objc-class-ref in SplashScreenViewController.o
objc-class-ref in CreateProfileViewController.o
objc-class-ref in MyTripsViewController.o
objc-class-ref in SettingsViewController.o
objc-class-ref in TrackingViewController.o
objc-class-ref in UserloginViewController.o
objc-class-ref in PickTripViewController.o
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
can any one of you help me thanks in advance

Run lipo -info libCompuwareUEM.a and check if there is x86_64
Check this website, there is a detailed setup.

Try to clean your complete build directory and derived data
open Xcode -> Product Clean and alt + product clean.

The x86_64 architecture is used when you run a 64bit iPhone simulator! DONT mix it with arm64 which is the 64-bit Device architecture.
The error clearly indicates that the library doesn't contain x86_64.
[you could also check with lipo as said by las but the error is quiet clear]

issue resolved. The main problem is with the CompuwareUEM i totally remove that 3rd party library. Now it working fine.

Related

How to resolve this Stripe Payment integration Error?

"_OBJC_CLASS_$_STPPaymentCardTextField", referenced from:
objc-class-ref in PaymentViewController.o
"_OBJC_CLASS_$_Stripe", referenced from:
objc-class-ref in StripeHandlerViewController.o
objc-class-ref in AppDelegate.o
objc-class-ref in PaymentViewController.o
(maybe you meant: _OBJC_CLASS_$_StripeHandlerViewController)
"_OBJC_CLASS_$_STPAPIClient", referenced from:
objc-class-ref in StripeHandlerViewController.o
objc-class-ref in PaymentViewController.o
"_StripeDomain", referenced from:
-[StripeHandlerViewController createBackendChargeWithToken:completion:] in StripeHandlerViewController.o
___71-[StripeHandlerViewController createBackendChargeWithToken:completion:]_block_invoke in StripeHandlerViewController.o
-[PaymentViewController save:] in PaymentViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I try to integrate Stripe payment in my old project, so i added some example file in myproject. it show this errors so i google it and add this file to Build phase--> Compile sources but it still show this error.
Please help me to find solution.
ld: symbol(s) not found for architecture x86_64
You are trying to build this for the simulator and the linker is telling you that the library is missing the binary for the x86_64 (simulator). I'm not familiar with that library but you are most likely missing the framework that's specifically for the simulator or that library doesn't have simulator support.

Apple Mach-O Linker Error with Parse OBJC classes

Hi I have looked over similar questions and tried everything but I can seem to fix my code. Every time I try and archive it I get
Apple Mach-O Linker Errors for Parse User, Object, File, Query, Parse
and a linker command failed with exit code 1.
First I get an ld:
warning: ignoring file .., missing required architecture arm 64 in
file Parse.framework.Parse
Then the following errors:
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_PFUser",
referenced from:
objc-class-ref in SignupViewController.o
objc-class-ref in LoginViewController.o
objc-class-ref in InboxViewController.o
objc-class-ref in EditFriendsViewController.o
objc-class-ref in FriendsViewController.o
objc-class-ref in CameraViewController.o "_OBJC_CLASS_$_PFObject", referenced from:
objc-class-ref in CameraViewController.o "_OBJC_CLASS_$_PFFile", referenced from:
objc-class-ref in CameraViewController.o "_OBJC_CLASS_$_PFQuery", referenced from:
objc-class-ref in InboxViewController.o "_OBJC_CLASS_$_Parse", referenced from:
objc-class-ref in AppDelegate.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code
1 (use -v to see invocation)
Please can someone with experience of this issue help me as I've spent about 3 hours researching this already.
I know it's something to do with the Linked Frameworks but I don't get what?
Things I've tried:
Updating to the latest version of Parse Framework.
Including various other Frameworks that might have been missing.
Changed the Architectures in Build Setting to Standard Architectures (armv7, arm64)
Changed Build active Architecture only to No.
I just want this X-code project to build and archive with 64-bit support but there seems to be something fundamentally wrong with how I'm implementing Parse for 64-bit

Twitter library error : Undefined symbols for architecture x86_64:

I am using TwitterLibrary in one of my applications, Twitter log-in is working perfectly but as per the apple's requirement new apps can be submitted with 64bit support and build with IOS8+ SDK, so for this I added "armv7 armv7s arm64" in valid architecture in build setting in my target and project.After adding "arm64" I am facing following erros
"_OBJC_CLASS_$_OAConsumer", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OADataFetcher", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAMutableURLRequest", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OARequestParameter", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAToken", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: unable to open executable '/Users/my-name/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphonesimulator/MYAPP.app/MYAPP'
I thing twitter library does not provide 64 bit support,its my guess i am not sure about it, but how can I remove twitter errors is there any way to short these errors?
Thanks a lot in advance..
Finally come to a solution Added latest Twitter-IOS-SDK using Twitter's new Xcode plugin named "fabric". New SDK is compatible with 64bit.
https://dev.twitter.com/twitter-kit/ios/configure

iOS SKMaps architecture error

I am currently getting an error when I want to build project on a 64bit System. (iPad, iPhone).
I am getting this error :
ld: warning: ignoring file /(project Path)/SKMaps.framework/SKMaps, missing required architecture x86_64 in file /(project Path)/SKMaps.framework/SKMaps (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_SKAnnotation", referenced from:
objc-class-ref in MapViewController.o
"_OBJC_CLASS_$_SKMapView", referenced from:
objc-class-ref in MapViewController.o
"_OBJC_CLASS_$_SKMapsInitSettings", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SKMapsService", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
On non 64-Bit Systems it works like a charm! But it shows error the other way around.
Need some guidance on this. Thanks.
You will need the SDK build for arm64. Send an email to dev#skobbler.com and you should receive the build.

Include WebRTC in iOS project

I trying to deal with the AppRTCDemo projet but I am getting error.
Which library I forget to include ?
Log error :
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_RTCVideoRenderer", referenced from:
objc-class-ref in VideoView.o
"_OBJC_CLASS_$_RTCSessionDescription", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RTCICECandidate", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RTCVideoCapturer", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RTCPair", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RTCMediaConstraints", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RTCPeerConnectionFactory", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_RTCICEServer", referenced from:
objc-class-ref in APPRTCAppClient.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Thanks
The solution is to set the "Other Linker Flags" in the build setting of your project to $(inherited).
Then it will be an inherited link options from the workspace.
Maybe this library isn't built for armv7s processors.
Is it static lib built in .a file?
If so, you can run in console lipo -info command to see what architectures is this library built for.
For example, this command for some library somelib.a lipo -info somelib.a gives output:
Architectures in the fat file: somelib.a are: armv7 i386
If armv7s architecture isn't supported, but armv7 is, you can also run your project, try setting this in your build options:
"Build Active Architecture Only" YES --> NO.
You may be testing on iPhone 5 or above which is on armv7s architecture (see http://iossupportmatrix.com/ for more info).
The AppRTCDemo was built on armv7, that assume to run it on devices issued between the iPhone 3GS and the iPad mini (that includes iPhone 4 and 4s).
Regards,
S.
you have to run the app in ios device....not in simulator

Resources