GoogleMobileAdsMediationChartboost 9.1.0 has undefined symbols for os.Logger in ChartboostSDK
Closed this issue · 5 comments
I've recently upgraded my project to Firebase 10.4.0 and got the following linking error from GoogleMobileAdsMediationChartboost dependencies:
Undefined symbols for architecture arm64:
"nominal type descriptor for os.Logger", referenced from:
_symbolic _____ 2os6LoggerV in ChartboostSDK(OSLogProccesor.o)
"type metadata accessor for os.Logger", referenced from:
type metadata completion function for ChartboostSDK.LoggerLogProcessor in ChartboostSDK(OSLogProccesor.o)
ChartboostSDK.LoggerLogProcessor.__deallocating_deinit in ChartboostSDK(OSLogProccesor.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
My Podfile:
def shared_mac_pods
platform :osx, '11.00'
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
# Pods for App-desktop
pod 'FirebaseOSX', '>= 2.5.1'
end
target 'App-desktop' do
shared_mac_pods
end
target 'Metal-App-desktop' do
shared_mac_pods
end
def shared_ios_pods
platform :ios, '12.1'
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
# Pods for App-mobile
pod 'Google-Mobile-Ads-SDK'
pod 'GoogleMobileAdsMediationAdColony'
pod 'GoogleMobileAdsMediationChartboost'
pod 'FirebaseAnalytics'
pod 'FirebaseAuth'
pod 'FirebaseCrashlytics'
pod 'FirebaseDynamicLinks'
pod 'FirebasePerformance'
pod 'FirebaseRemoteConfig'
pod 'FirebaseStorage'
#pod 'FirebaseUI' # Significantly increases build time! Let's use individual ones
pod 'FirebaseUI/Google'
pod 'FirebaseUI/Facebook'
pod 'FirebaseUI/OAuth' # Used for Sign in with Apple, Twitter, etc
pod 'FBSDKCoreKit', :modular_headers => true
end
target 'App-mobile' do
shared_ios_pods
end
target 'Metal-App-mobile' do
shared_ios_pods
end
When I fix the version to the previous one like:
pod 'GoogleMobileAdsMediationChartboost', '9.0.0.0'
the linker error goes away. I tried fixing version of ChartboostSDK to 9.0.0 but you seem to have a hard dependency there on version 9.1.0 so I had to downgrade version of GoogleMobileAdsMediationChartboost.
macOS Big Sur 11.6.5
XCode Version 13.2.1 (13C100)
Firebase C++ SDK 10.4.0
Google-Mobile-Ads-SDK 9.14.0
HI , @solodon4! Chartboost iOS Adapter v9.2.0.0 was just released. Could you verify if that solve this issue.
https://developers.google.com/admob/ios/mediation/chartboost#chartboost-ios-mediation-adapter-changelog.
Hi @chlandacastro,
It is likely fixed as I don't see those two symbols among the undefined symbols, however, I cannot fully validate it for you as I get a large number of other undefined symbols, which are caused by both Google and Chartboost using XCode 14 to build your sources, while I use XCode 13 to link to them:
Undefined symbols for architecture arm64:
"_objc_msgSend$initWithName:libraryVersion:adapterVersion:", referenced from:
_GADMAdapterChartboostMediation in ChartboostAdapter(GADMAdapterChartboostUtils.o)
"_objc_msgSend$sharedApplication", referenced from:
-[CHBSharedApplication app] in ChartboostSDK(CHBApplication.o)
...
many many more all starting with _objc_msgSend$
According to the explanation provided here both Google and Chartboost would have to use -fno-objc-msgsend-selector-stubs
during the build for it to link with code produced by older XCode versions.
Thanks,
Yuriy
P.S. I am using XCode 14 for CI with GitHub Actions, however, the build is broken there right now, so I can't validate it there either until I figure out how.
P.P.S. I have just realized that I can't even say it is likely fixed because the errors stopped after 100 undefined symbols, so those 2 might have been still undefined.
Does the issue still persist and prevent you to load and render ads from Chartboost? Can you also check the Architectures and Valid Architectures settings in your project/target?
The next Chartboost iOS adapter release would require Xcode minimum version of 14.1.
Closed as the issue wasn't reproducible and there wasn't an update from the reporter.