Cocoapods use_frameworks! import issue

Ponf picture Ponf · Dec 23, 2015 · Viewed 16.4k times · Source

I want to use some Swift pods in my Objective-C app, so I need to use frameworks instead of static libraries. But enabling use_frameworks! in my Podfile causes tones of #import errors.

My Podfile:

platform :ios, '8.0'
use_frameworks!

pod 'AFNetworking', '2.6.0'
pod 'Typhoon'
pod 'SSKeychain'
pod 'JBWebViewController'
pod 'TTTAttributedLabel'
pod 'HockeySDK'
pod 'GoogleAnalytics'
pod 'Intercom'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'UIButton+Activity'
pod 'HexColors'
pod 'AFNetworkActivityLogger'
pod 'HCSStarRatingView', :git => 'https://github.com/hsousa/HCSStarRatingView.git'
pod 'LGSideMenuController'
pod 'DateTools'
pod 'SDWebImage'
pod 'SSCWhatsAppActivity'
pod 'UIViewController+BlockSegue'

The first problem was with SSKeychain pod:

SSKeychain Error

In code I'm including SSKeychain using "quotes" #import "SSKeychain/SSKeychain.h", but if I understand right, I need to use <angle> from now #import <SSKeychain/SSKeychain.h>? But in this case I receive same error, but in my code.

My Build Phases:

Build Phases

Anyway I have found fork of SSKeychain with "quotes" import (https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749) and switched to those version.

But now I have same issue with many other pods (almost with all of them):

FBSDKCoreKit error

Import in app: #import "FBSDKCoreKit/FBSDKCoreKit.h"

Do I really need to fork each repo and change import statements?? Or I'm including pods in wrong way?

PS: I'm cleaning derived data and project before each build attempt.

Cocoapods Version: 0.39.0

Answer

Diego Freniche picture Diego Freniche · Dec 23, 2015

As you've used Modules in your Podfile, why don't you just:

@import SSKeychain;

instead of:

#import <SSKeychain/SSKeychain.h>

To test that:

  • create a simple iOS project, just with one ViewController
  • create a Podfile using your code above
  • run pod install
  • open the Workspace
  • build & run: it compiles OK