问题
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:
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:
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):
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
回答1:
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
回答2:
I have finally figured out it! The problem was fixed by removing Pods.framework
from Link Binary With Libraries and adding them again manually.
Thanks for help!
回答3:
Also check error messages on pod install
.
In my case I was using a custom import in FRAMEWORK_SEARCH_PATHS
, and just because I was doing that, whenever I did pod install
the extra search paths that CocoaPods adds were not being added. So I had to remove my custom path and then they showed up. Then I added my custom path.
Might be a good idea to do pod deintegrate
, delete de xcworkspace file and do pod install
once more. Then add your custom build settings.
This is the error I was getting:
[!] The App [Debug] target overrides the FRAMEWORK_SEARCH_PATHS
build setting defined in Pods/Target Support Files/Pods-AppLib/Pods-AppLib.debug.xcconfig.
This can lead to problems with the CocoaPods installation
回答4:
In my case, what was an issue I already downloaded few ObjC Pods for my Objective C Project then I need one swift pod so I enable use_framwork
in my pod file and install that swift pod, After installing that swift pod import issue arrives for ObjeC Libraries in many classes, So
What I did to fix this issue?
- Cut all Objective C pods from pod file
- Open terminal and run command:
cd path/myProject
- Terminal run command:
pod install
- Past it (all Objective C pods) again in pod file and save it
- Terminal run command:
pod install
来源:https://stackoverflow.com/questions/34429793/cocoapods-use-frameworks-import-issue