I'm creating a new tabbed iOS application in xCode 5.1.1. I'm had done research but none of the solutions work to me. So I ended up with migration from xCode 6.1 to xCode 5.1.1. But the problem still occur which I have no idea now. Perhaps the settings in architecture i386 need to be changed. But I have no idea how.
Error:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ASIdentifierManager", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdUtility.o) "_OBJC_CLASS_$_CMMotionManager", referenced from:
objc-class-ref in FBAudienceNetwork(FBAdAnalogInfo.o) ld: symbol(s) not found for architecture i386 clang: error: linker command
failed with exit code 1 (use -v to see invocation)
Build Settings
Standard architectures(armv7, armv7s, arm64) - $(ARCHS_STANDARD)
Build Active Architecture Only : YES / NO
Update:
After adding CoreMotion and AdSupport frameworks, errors had been reduced. But left one more error which state:
missing required architecture x86_64 in file {DIRECTORY}/FacebookSDK/Bolts.framework/Bolts (2 slices)
duplicate symbol _OBJC_IVAR_$_AppDelegate._window in
Current Framework:
CoreMotion
AdSupport
CoreGraphics
FacebookSDK
UIKit
FBAudienceNetwork
Foundation
Bolts
You need to link
AdSupport.framework
CoreMotion.framework
Did you remove Sample folder after dragging in the FacebookSDK into Frameworks group of your Xcode project? I had the same issue, and it was because Xcode tried to compile all the samples too. Removed Samples folder - everything works as a charm - no need to add AdSupport or any other framework.
You probably didn't add AdSupport.framework.
set property for architecture as below image..
Delete Sample Folder. Clean and Build. Will work like a charm.
Related
I am attempting to use Google Cast Remote Display. Simply adding the GoogleCastRemoteDisplay.framework results in linking errors. I have sorted out some, but cannot figure this out...
Anyone have an idea?
Undefined symbols for architecture armv7:
"_kvImage_ARGBToYpCbCrMatrix_ITU_R_709_2", referenced from:
l034 in GoogleCastRemoteDisplay(libCastRemoteDisplay.a-armv7-master.o)
"_vImageConvert_ARGB8888To420Yp8_Cb8_Cr8", referenced from:
l035 in GoogleCastRemoteDisplay(libCastRemoteDisplay.a-armv7-master.o)
"_vImageConvert_ARGB8888To420Yp8_CbCr8", referenced from:
l035 in GoogleCastRemoteDisplay(libCastRemoteDisplay.a-armv7-master.o)
"_vImageConvert_ARGBToYpCbCr_GenerateConversion", referenced from:
l034 in GoogleCastRemoteDisplay(libCastRemoteDisplay.a-armv7-master.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Solved it by running "pod install" instead of manually bringing in the .framework However this is a unity project, so there were issues with
The Unity-iPhone [Release] target overrides the HEADER_SEARCH_PATHS build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
went to project build settings->Other Linker Flags and added $(inherited)
Absolutely right that the Cocoapod is the best way of grabbing the library. If you were pulling it in manually thought, you'll need to link in the appropriate system frameworks, and the regular google-cast-sdk, which is dependends on - you can actually read these from the podspec even if you're not using Cocoapods. These are:
Accelerate
AudioToolbox
CoreMedia
CoreVideo
OpenGLES
QuartzCore
And Metal if using that rendering method.
The functions you listed are from the Accelerate framework.
When trying to build my iOS app in Xcode, I get the following error message.
Undefined symbols for architecture i386: "OBJC_CLASS$UIPresentationController", referenced from: _OBJC_CLASS$SSSidebarPresentationController in libtools.a(SSSidebarPresentationController.o) "_OBJC_METACLASS$UIPresentationController", referenced from: _OBJC_METACLASS$_SSSidebarPresentationController in libtools.a(SSSidebarPresentationController.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have the latest version of Xcode. I have tried cleaning and deleting derived data but that did not help. I've noticed a lot of other people on the internet have similar error messages but the solutions did not help me.
Add the AVFoundation and CoreLocation frameworks to your target. After you do this, delete derived data, clean, and build again.
Also, check in your architectures under build settings and make sure that you have armv7 and armv7s listed under valid architectures. If the above answer does not fix your problem then try adding or removing arm64.
I had this question going on, but now I am a little further:
I added this framework to my project:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/AdSupport.framework
Now this works fine if I run the app on any device, however this framework is just for the architectures armv7, armv7s and arm64
When running the app on the simulator, the build fails because the architecture i386 is missing. This is included in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AdSupport.framework
How can I achieve that all architectures can be used? I played a lot with the build-settings but nothing worked so far!
error report:
ld: warning: ignoring file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport, missing required architecture i386 in file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport (3 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ASIdentifierManager", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADDevice.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Thanks a lot!
Go to the Project Target.and make architecture like below image.
/Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport is missing an i386 slice; I suspect that it was likely built for arm and not intel. It looks like that framework is external to your project, so I suggest you rebuild it for the simulator.
You can check the current architectures of the framework by running file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport
I am trying to launch my iOS app on the simulator but it does not work. Running the app on the phone works normally though. It has something to do with my admon integration. Before the simulator was running smoothly. I am using Xcode 6.1.
I added all required frameworks:
AdSupport
AudioToolbox
AVFoundation
CoreGraphics
CoreTelephony
EventKit
EventKitUI
MessageUI
StoreKit
SystemConfiguration
as well as libGoogleAdMobAds.a
The error I get is:
ld: warning: ignoring file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport, missing required architecture i386 in file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport (3 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ASIdentifierManager", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADDevice.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Go to "info" in project settings and clear library search paths, and then re-add the libGoogleAdMobAds.a framework
The library most probably does not contains any i386 binary slice. It probably contains slices for devices -- 3 "iPhone" architectures: armv7, armv7s, arm64 -- but not the simulator architecture, which runs on your computer.
Since the binary slice can't be found, the linker is missing symbols to make the i386 executable, and it can't be run in the simulator.
Where did you get the AdSupport.framework from? I now realize it's in your Documents directory.
Normally you should link the target from Xcode, by going in the target settings:
then Build phases > Link binary with libraries:
search for "AdSupport", it should be under iOS8.1:
the library should be there:
i have replaced older version of admob 6.6.1 with latest admob library version 6.12.0 but i get this error although every thing is fine. I am using xcode 6.0.1, how to resolve this issue, any help?
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_EKEvent", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
"_OBJC_CLASS_$_EKEventEditViewController", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I had same issue but i solved by adding eventKit and eventUIKit framework into my project. Hope it will work for you too.
This error is mostly because update of your ADMOB SDK.
1) Go to build phases->Open list of frameworks.
2) Locate libGoogleAdMobAds.a. Remove this file by pressing - sign.
3) Again add this libGoogleAdMobAds.a file back by pressing + sign and selecting "Add other". select this file from ADMOB folder of your project.
4) Clean, then build and run your project.
Also, check you have -ObjC set to Other Linker Flags in your project's target build settings and required frameworks are added.
add Framework EventKit and EventKitUI.