TwitterKit.h: Module 'TwitterCore' not found

ios
fabric

#1

I’ve been using an old 1.x version of the Twitter sign-in framework for iOS. It was installed by hand: I had Fabric.framework and TwitterKit.framework directories under my project.

I’m trying to upgrade to the latest (2.4.0 it appears). I deleted my framework directories and updated my Podfile, which looks like this:

platform :ios, '8.0’
target ‘wyvern’ do
pod 'Google/SignIn’
pod 'CocoaAsyncSocket’
pod 'Fabric’
pod 'TwitterKit’
end

I did a ‘pod install’, added the Run Script to my build phases, Product->Clean and restarted XCode. I’ve done this on multiple machines (all with the same git repo), and I always get the same result. In TwitterKit.h, this line:

@import TwitterCore;

yields the error: Module ‘TwitterCore’ not found. It appears that cocoapods installed TwitterCore:

$ find . -name “TwitterCore*”
./Pods/Headers/Public/TwitterCore
./Pods/Headers/Public/TwitterCore/TwitterCore
./Pods/Headers/Public/TwitterCore/TwitterCore/TwitterCore.h
./Pods/TwitterCore
./Pods/TwitterCore/iOS/TwitterCore.framework
./Pods/TwitterCore/iOS/TwitterCore.framework/Headers/TwitterCore.h
./Pods/TwitterCore/iOS/TwitterCore.framework/TwitterCore

I’ve tried everything suggested on the few threads I could find, to no avail. This thread:

does not seem relevant to my situation. Any idea what I should try next?


#2

Thanks for reaching out on this @SteveYegge, some things may have gotten confused between the older manual setup and the automated approach now being taken. Do you see the TwitterCore framework in your app at all or is it there but just not being found by TwitterKit.h?


#3

Hi – nope, you’re right, it’s not there.


#4

Thanks, It’s odd that pod install didn’t pull things in correctly, but try running a pod update to see if that helps.


#5

There are two more things I would try:

  1. delete your derived data directory
  2. try running pod install again after adding !use_frameworks to the target in your podfile:
    platform :ios, '8.0'

    target 'wyvern' do
      use_frameworks!

      pod 'Google/SignIn'
      pod 'CocoaAsyncSocket'
      pod 'Fabric'
      pod 'TwitterKit'
    end

#6

Hi @stevenhepting – tried both steps; no luck. pod install and pod update both tell me:

Analyzing dependencies
Downloading dependencies
Using CocoaAsyncSocket (7.5.0)
Using FirebaseAnalytics (3.4.2)
Using FirebaseInstanceID (1.0.8)
Using Google (3.0.3)
Using GoogleAppUtilities (1.1.1)
Using GoogleAuthUtilities (2.0.1)
Using GoogleInterchangeUtilities (1.2.1)
Using GoogleNetworkingUtilities (1.2.1)
Using GoogleSignIn (4.0.0)
Using GoogleSymbolUtilities (1.1.1)
Using GoogleUtilities (1.3.1)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 11 total pods installed.

Interesting that the output doesn’t mention TwitterKit or Fabric.


#7

I should add that I tried the obvious approach of adding TwitterCore to my Podfile. This downloads and installs TwitterCore. However, after that I get:

TwitterKit/TwitterKit.h: file not found
Fabric/Fabric.h: file not found

anywhere that I am currently importing them. But perhaps this is an easier problem to solve? Their locations in my project directory are:

./Pods/TwitterKit/iOS/TwitterKit.framework/Headers/TwitterKit.h
./Pods/Fabric/iOS/Fabric.framework/Headers/Fabric.h

Is this something I can fix by updating my link line and/or build settings?

Failing that, I’ve noticed that your instructions for manually installing the frameworks have disappeared. You can either use cocoapods or the Fabric installer app. Neither of those approaches is working for me, so maybe a manual install is the way to go?


#8

Hey folks,

I was able to work around it by:

  • adding TwitterCore to my Podfile (followed by pod install)
  • manually adding Fabric.framework and TwitterKit.framework to my Frameworks lists for the project.