Unable to use Firebase Crashlytics with Mac Catalyst app when installed using SPM

[REQUIRED] Step 1: Describe your environment

  • Xcode version: 12.0 beta 6
  • macOS Catalina 10.15.6
  • Firebase SDK version: branch 6.32-spm-beta
  • Firebase Component: Crashlytics
  • Component version: 6.32-spm-beta
  • Installation method: Swift Package Manager

[REQUIRED] Step 2: Describe the problem

When trying to use FirebaseCrashlytics in macCatalyst app, following compilation errors happen:

ld: symbol(s) not found for architecture x86_64
Undefined symbol: _CTRadioAccessTechnologyCDMA1x
Undefined symbol: _CTRadioAccessTechnologyCDMAEVDORev0
Undefined symbol: _CTRadioAccessTechnologyCDMAEVDORevA
Undefined symbol: _CTRadioAccessTechnologyCDMAEVDORevB
Undefined symbol: _CTRadioAccessTechnologyEdge
Undefined symbol: _CTRadioAccessTechnologyGPRS
Undefined symbol: _CTRadioAccessTechnologyHSDPA
Undefined symbol: _CTRadioAccessTechnologyHSUPA
Undefined symbol: _CTRadioAccessTechnologyLTE
Undefined symbol: _CTRadioAccessTechnologyWCDMA
Undefined symbol: _CTRadioAccessTechnologyeHRPD
Undefined symbol: _OBJC_CLASS_$_CTTelephonyNetworkInfo

Steps to reproduce:

  1. Install Firebase Crashlytics via SPM
  2. import Firebase
  3. Try to compile for macCatalyst

Opinion

I think this is happening because most of those constants are marked as API_UNAVAILABLE(macos).

Probably errors originate from here.

Possible solution – exclude calls to those constants using #if TARGET_OS_MACCATALYST, although i’m not 100%% sure it’s a complete solution for macCatalyst.

1 possible answer(s) on “Unable to use Firebase Crashlytics with Mac Catalyst app when installed using SPM