In my XCode 5 project I use RestKit for REST communication. Everything works fine with the simulators, but generating the ipa file, I get the following error:
ld: warning: ignoring file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a, missing required architecture arm64 in file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a (2 slices)
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_RKRelationshipMapping", referenced from:
objc-class-ref in classname-xxx.o
"_OBJC_CLASS_$_RKObjectMapping", referenced from:
objc-class-ref in classname-xxx.o
"_OBJC_CLASS_$_RKRequestDescriptor", referenced from:
objc-class-ref in classname-xxx.o
"_OBJC_CLASS_$_RKObjectManager", referenced from:
objc-class-ref in classname-xxx.o
"_OBJC_CLASS_$_RKResponseDescriptor", referenced from:
objc-class-ref in classname-xxx.o
"_RKStatusCodeIndexSetForClass", referenced from:
-[classname-xxx classname-Method] in classname-xxx.o
-[classname-xxx classname-Method] in classname-xxx.o
-[classname-xxx classname-Method] in classname-xxx.o
-[classname-xxx classname-Method] in classname-xxx.o
-[classname-xxx classname-Method] in classname-xxx.o
"_RKMIMETypeJSON", referenced from:
-[classname-xxxinitWithURLBase:timeOut:] in classname-xxx.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation).
If in RestKit project, I change in "Build Settings" -> "Architectures" the "Standard architectures (ARMv7, armv7s)" by Standard architectures (including 64-bit) (ARMv7, armv7s, arm64) option, everything compiles fine . Is this correct?, Does not bring any result, I have to change some other settings.
It just means you are building your project also for 64bit (iPhone 5s) and nothing to worry about, see this link for some more explanations: Xcode 5 and iOS 7: Architecture and Valid architectures
- Select Restkit project
- Set the Build Active Architecture Only to
No

Just change in RestKit project -> Build Settings -> Architectures to Standard Architecture (armv7, armv7s, arm64). After that everything should work.
I ran into the same/similar issue implementing AVPictureInPictureController and the issue was that I wasn't linking the AVKit framework in my project.
The error message was:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_AVPictureInPictureController",
referenced from:
objc-class-ref in yourTarget.a(yourObject.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation) The Solution:
Go to your Project Select your Target Then, go to Build Phases Open Link Binary With Libraries Finally, just add + the AVKit framework / any other framework. Hopefully this helps someone else running into a similar issue I had.
This worked for me:
ios sdk 9.3
into your build setting of app.xcodeproj valid architecture: armv7 armv7s Build Active architecture : No
Clean and build , worked for me.
In my case i forgot to add sqlite library in my project. After adding library from Linked framework and library the build was successful.
来源:https://stackoverflow.com/questions/20926632/xcode-undefined-symbols-for-architecture-arm64-error