我想在我的Objective-C应用程序中使用一些Swift Pod,所以我需要使用框架而不是静态库。但是在我的Podfile中启用use_frameworks!会导致#import错误提示音。

我的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'

第一个问题是SSKeychain pod:

objective-c - Cocoapods use_frameworks!进口问题-LMLPHP

在代码中,我使用“quotes” #import "SSKeychain/SSKeychain.h"包括SSKeychain,但是如果我理解正确,我现在需要使用<angle> #import <SSKeychain/SSKeychain.h>吗?但是在这种情况下,我会在代码中收到相同的错误。

我的构建阶段:

objective-c - Cocoapods use_frameworks!进口问题-LMLPHP

无论如何,我发现带有“引号”导入(https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749)的SSKeychain的分支并切换到那些版本。

但是现在我对许多其他 pods (几乎所有 pods )都存在相同的问题:

objective-c - Cocoapods use_frameworks!进口问题-LMLPHP

导入应用程序:#import "FBSDKCoreKit/FBSDKCoreKit.h"
我真的需要派生每个仓库并更改导入语句吗?还是我以错误的方式包含了 pod ?

PS:在每次构建尝试之前,我都会清理派生数据和项目。

Cocoapods版本:0.39.0

最佳答案

当您在Podfile中使用Modules时,为什么不这样做:

@import SSKeychain;

代替:
#import <SSKeychain/SSKeychain.h>

要测试:
  • 使用一个ViewController
  • 创建一个简单的iOS项目
  • 使用
  • 上方的代码创建Podfile
  • 运行pod install
  • 打开工作区
  • 构建并运行:它可以编译
  • 关于objective-c - Cocoapods use_frameworks!进口问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34429793/

    10-11 19:52