Xcode 5.1 and compilation error for x86_64 architecture

Yesterday I had a project with no problems with Xcode 5. Today, after upgrading to Xcode 5.1, I have 6 errors and the project does not compile.

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_PayPal", referenced from: objc-class-ref in SUAppDelegate.o objc-class-ref in SUTViewController.o "_OBJC_CLASS_$_PayPalAdvancedPayment", referenced from: objc-class-ref in SUTViewController.o "_OBJC_CLASS_$_PayPalInvoiceData", referenced from: objc-class-ref in SUTViewController.o "_OBJC_CLASS_$_PayPalInvoiceItem", referenced from: objc-class-ref in SUTViewController.o "_OBJC_CLASS_$_PayPalReceiverPaymentDetails", referenced from: objc-class-ref in SUTViewController.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

The project includes the PayPal library , and it is correctly linked to the code. He is, I see a library, so this is not a missing library.

Running code in simulator 6.1 without problems.

There may be a problem with the new Xcode 5.1 feature "Updates the standard iOS architecture, including the 64-bit version."

Maybe I should change the standard architecture? Or something related to the PayPal library?

Does anyone know how to solve this?

+4
x86-64 ios objective-c xcode paypal
Mar 11 '14 at 16:20
source share
6 answers

I think the PayPal library you are using does not support arm64.

check this problem PayPal-iOS-SDK-47 for the updated paypal library.

Edit: - update link for paypal library (with arm64 support)

+9
Mar 11 '14 at 17:01
source share

Choose "Application Settings" "Build Settings", select "Architectures", click "Other" and "Strong"> "Delete" (ARCHS_STANDARD) and add $ (ARCHS_STANDARD_32_BIT)

Below is the image for the same In app Target's -> Build Settings -> Architectures

He will fix the problem for me.

+11
Mar 27 '14 at 9:02
source share

I found this task very difficult, so I made a video explaining how to remove arm64 from valid architectures. Hope this helps!

https://www.youtube.com/watch?v=d-pJLRy4rVk&feature=youtube_gdata_player

+1
May 29 '14 at 14:30
source share

If you just skip the x86_64 architecture (but you have arm64) and you cannot get a library that includes the x86_64 architecture, follow these steps:

adding different architectures for different SDKs

+1
Jan 22 '15 at 12:38
source share

Go to Goals → Build Settings → Linking → Other Linker Flags Add -ObjC -l "PayPalMobile" -l "Pods-PayPal-iOS-SDK" -l "C ++" -framework "AVFoundation" -framework "AudioToolbox" -framework "CoreLocation" -framework "CoreMedia" -framework "MessageUI" -framework "MobileCoreServices" -framework "SystemConfiguration"

0
Jan 02 '15 at 11:50
source share

In addition to Nikita's answer, you can change the parameter from “i386” to x86_64 to compile a library that conforms to the x86_64 . Then the compilation errors will disappear.

0
Sep 02 '15 at 4:45
source share



All Articles