Cocoapods use_frameworks!进口问题

Pon*_*onf 21 xcode objective-c facebook-ios-sdk cocoapods

我想在Objective-C应用程序中使用一些Swift pod,所以我需要使用框架而不是静态库.但是use_frameworks!在我的Podfile中启用会导致#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'
Run Code Online (Sandbox Code Playgroud)

第一个问题是SSKeychainpod:

SSKeychain错误

在代码中我使用"引号"包括SSKeychain #import "SSKeychain/SSKeychain.h",但如果我理解正确,我需要<angle>从现在开始使用#import <SSKeychain/SSKeychain.h>?但在这种情况下,我收到相同的错误,但在我的代码中.

我的构建阶段:

建立阶段

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

但现在我和许多其他豆荚(几乎所有豆荚)都有同样的问题:

FBSDKCoreKit错误

在应用中导入: #import "FBSDKCoreKit/FBSDKCoreKit.h"

我真的需要分叉每个repo并更改import语句吗?或者我以错误的方式包括豆荚?

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

Cocoapods版本:0.39.0

Die*_*che 12

正如您在Podfile中使用模块一样,为什么不呢:

@import SSKeychain;
Run Code Online (Sandbox Code Playgroud)

代替:

#import <SSKeychain/SSKeychain.h>
Run Code Online (Sandbox Code Playgroud)

测试:

  • 使用一个ViewController创建一个简单的iOS项目
  • 使用上面的代码创建一个Podfile
  • 运行pod安装
  • 打开工作区
  • 构建和运行:它编译好


Pon*_*onf 7

我终于想通了!通过Pods.frameworkLink Binary With Libraries中删除并再次手动添加它们来解决此问题.

感谢帮助!

  • 下次运行它(https://github.com/CocoaPods/cocoapods-deintegrate)以删除所有CocoaPods的痕迹,然后再次"pod install"将是有用的. (3认同)