Undefined Symbols After Latest TwitterKit Cocoapods Upgrade

fabric
twitterkit

#1

I recently upgrade the cocoapods references for Fabric, Crashlytics, and TwitterKit to their latest versions. My Podfile contains the following:

pod 'Fabric'
pod 'Crashlytics'
pod 'TwitterCore'
pod 'TwitterKit'

I can confirm that version 1.15.3 is being used for TwitterCore and TwitterKit. I believe that before I updated the pods I was using version 1.11.4 and that was compiling successfully. However now when I attempt the build the project, I receive the errors:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_TWTRAuthConfigSessionsValidator", referenced from:
      objc-class-ref in TwitterKit(Twitter.o)
  "_OBJC_CLASS_$_TWTRAuthConfigStore", referenced from:
      objc-class-ref in TwitterKit(Twitter.o)
  "_OBJC_CLASS_$_TWTRMultipartFormDocument", referenced from:
      objc-class-ref in TwitterKit(TWTRAPIClient.o)
  "_OBJC_CLASS_$_TWTRMultipartFormElement", referenced from:
      objc-class-ref in TwitterKit(TWTRAPIClient.o)
  "_OBJC_CLASS_$_TWTRScribeCardEvent", referenced from:
      objc-class-ref in TwitterKit(TWTRScribeSink.o)
  "_OBJC_CLASS_$_TWTRScribeMediaDetails", referenced from:
      objc-class-ref in TwitterKit(TWTRScribeSink.o)
  "_TWTRScribeActionLike", referenced from:
      -[TWTRScribeSink didLikeTweetWithID:] in TwitterKit(TWTRScribeSink.o)
  "_TWTRScribeActionUnlike", referenced from:
      -[TWTRScribeSink didUnlikeTweetWithID:] in TwitterKit(TWTRScribeSink.o)
  "_TWTRScribeEventActionClick", referenced from:
      -[TWTRScribeSink didTapCancelComposerWithCardType:forUserID:] in TwitterKit(TWTRScribeSink.o)
      -[TWTRScribeSink didTapTweetComposerWithCardType:forUserID:] in TwitterKit(TWTRScribeSink.o)
  "_TWTRScribeEventImpressionSectionTweet", referenced from:
      -[TWTRScribeSink didShareTweetWithID:] in TwitterKit(TWTRScribeSink.o)
      +[TWTRScribeSink tweetLoadNamespace] in TwitterKit(TWTRScribeSink.o)
      +[TWTRScribeSink tweetViewImpressionNamespaceWithStyle:showingActions:] in TwitterKit(TWTRScribeSink.o)
      +[TWTRScribeSink tweetViewShareNamespace] in TwitterKit(TWTRScribeSink.o)
      +[TWTRScribeSink namespaceForActionName:] in TwitterKit(TWTRScribeSink.o)
  "_TWTRScribeEventImpressionSectionVideo", referenced from:
      -[TWTRScribeSink didShowMediaEntities:inTweetID:publishedByOwnerID:] in TwitterKit(TWTRScribeSink.o)
      -[TWTRScribeSink didPlayPercentOfMedia:fromVideoEntity:inTweetID:publishedByOwnerID:] in TwitterKit(TWTRScribeSink.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I’ve tried Googling for TWTRScribeMediaDetails, TWTRMultipartFormElement, and the other missing classes but I can find no mention of them. Am I somehow missing a library dependency?


#2

If I downgrade my pod definition for TwitterCore and TwitterKit to 1.11.4, I can compile the code. However, if I change them both to 1.12.1, I start seeing the Undefined symbols error again.


#3

When you’re updating or downgrading, are you also changing versions of Fabric? If so, to what?