Remote Display Framework - ios

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.

Related

Updating Google AdMob SDK from 7.7.0 to 7.8.0 Undefined Symbols Error

I have updated my Google AdMob SDK from 7.7.0 to 7.8.0. After that I am getting this error:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_SFSafariViewController", referenced from:
objc-class-ref in GoogleMobileAds(flat-x86_64)
ld: symbol(s) not found for architecture x86_64 clang: error: linker
command failed with exit code 1 (use -v to see invocation)
I have added all these frameworks:
AdSupport,
AudioToolbox,
AVFoundation,
CoreGraphics,
CoreMedia,
CoreTelephony,
EventKit,
EventKitUI,
MediaPlayer,
MessageUI,
StoreKit,
SystemConfiguration
Before I updated this SDK it was working fine. This is in my Framework Search Path in Build Phases
$(inherited)
$(PROJECT_DIR)/SDKs
$(PROJECT_DIR)
$(PROJECT_DIR)/SDKs/GoogleMobileAdsSdkiOS-7.8.0
I have added:
SafariServices.framework
CoreBluetooth.framework
It is working
In version 7.8.0 new dependencies to the frameworks CoreBluetooth and SafariServices were added, so adding these solved the issue this time.
The GoogleMobileAds SDK (aka AdMob SDK) has many dependencies and they are being added (and sometimes removed) in successive releases. For instance, JavaScriptCore framework is a new dependency starting with version 7.13.0 released on 2016-10-17. If you run into this issue again check for updates to the framework dependencies in the release notes log:
https://firebase.google.com/docs/admob/release-notes

Undefined symbols for architecture i386 Facebook SDK

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.

google admob undefined symbol for architecture armv7

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.

building TestFlightSDK with cocoapods

I seem to be getting the error message while trying to compile TestFlightSDK in my app via cocoapods
Im my Podfile i have the line:
pod 'TestFlightSDK'
And the pod update works fine.
When i try and compile the app i get the message:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_TestFlight", referenced from:
objc-class-ref in OurDealAppDelegate_iPhone.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
my app is only supporting Architecture armv7 (because if i add armv7s or arm64 older libraries fail to compile - so i assume its something to do with this.
Is there any work around for this?
Okay, you need to confirm whether Cocoapods has included libTestFlight.a library in your project. Cocoapods has never added the library for me.
So, please follow the steps below:
Open the Pods-TestFlightSDK target in the Pods.xcodeproj project
Open Build Phases tab and add libTestFlight.a
libTestFlight.a can be found at [$SRCROOT]/Pods/TestFlightsSDK

Archiving fails due to undefined Symbols for Google Analytics

I have integrated GAI using the most recent cocoapods version.
When I build in the Debug config everything runs just fine.
However, as soon as I try to archive the Application the compiler fails with the following messages:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GAIDictionaryBuilder", referenced from:
objc-class-ref in libWLCore.a(WLTrackingHelper.o)
"_OBJC_CLASS_$_GAI", referenced from:
objc-class-ref in libWLCore.a(WLTrackingHelper.o)
"_kGAIScreenName", referenced from:
+[WLTrackingHelper trackView:] in libWLCore.a(WLTrackingHelper.o)
+[WLTrackingHelper resetView] in libWLCore.a(WLTrackingHelper.o)
"_kGAIAnonymizeIp", referenced from:
+[WLTrackingHelper prepareDefaultTracker:withAnonymization:withUnCaughtExceptions:withDebug:] in libWLCore.a(WLTrackingHelper.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Since it works in Debug I tried to figure out where the difference in the configuration between Debug and Release lies.
I found out that the Other linker flags in Release are empty whereas in Debug contains the flag for GoogleAnalytics and other frameworks and libraries.
After adding the flags to the Release Configuration of Other linker flags I got
library not found for -lGoogleAnalyticsServices
After that, I added libPods and after that libPods-GoogleAnalytics to the Link Binary With Libraries section but the errors remained the same.
I invested almost 2 days into that problem, but I could not find any solution.
After some fiddling I found the solution by adding not the library generated by cocoa pods (libPods-GoogleAnalytics), but directly linking the libGoogleAnalyticsServices to my main project. Still, I think this is not the most elegant solution possible since the linker should know that the symbols he was missing were available already, as provided by cocoapods.
Please confirm you have added $(inherited) to Other Linker Flags (Build Settings) as in the below image. Add the same in Release also, otherwise the same error will pop up at the time of archiving.

Resources