Objective c Cocoapod使用_框架!进口问题
我想在Objective-C应用程序中使用一些Swift Pod,所以我需要使用框架而不是静态库。但是启用Objective c Cocoapod使用_框架!进口问题,objective-c,xcode,cocoapods,facebook-ios-sdk,Objective C,Xcode,Cocoapods,Facebook Ios Sdk,我想在Objective-C应用程序中使用一些Swift Pod,所以我需要使用框架而不是静态库。但是启用使用\u框架会导致#import错误音 我的播客文件: platform :ios, '8.0' use_frameworks! pod 'AFNetworking', '2.6.0' pod 'Typhoon' pod 'SSKeychain' pod 'JBWebViewController' pod 'TTTAttributedLabel' pod 'HockeySDK' pod '
使用\u框架我的播客文件中的code>会导致#import
错误音
我的播客文件:
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:
在代码中,我使用“引号”#导入“SSKeychain/SSKeychain.h”
,包括SSKeychain,但如果我理解正确,我需要使用
无论如何,我已经找到了带有“quotes”import()的SSKeychain分支,并切换到那个些版本
但现在我对许多其他豆荚(几乎所有豆荚)也有同样的问题:
在应用程序中导入:#导入“FBSDKCoreKit/FBSDKCoreKit.h”
我真的需要在每次回购和更改导入语句时分叉吗??或者我把豆荚放错地方了
PS:我在每次构建尝试之前清理派生数据和项目
Cocoapods版本:0.39.0正如您在播客文件中使用的那样,为什么不:
@import SSKeychain;
而不是:
#import <SSKeychain/SSKeychain.h>
#导入
为了检验这一点:
- 创建一个简单的iOS项目,只需一个ViewController
- 使用上面的代码创建一个pod文件
- 运行吊舱安装
- 打开工作区
- 编译和运行:编译正常
我终于明白了!通过从将二进制文件链接到库中删除
Pods.framework
,然后再次手动添加,问题得到了解决
谢谢你的帮助 还要检查pod安装上的错误消息
在我的例子中,我在FRAMEWORK\u SEARCH\u path
中使用了一个自定义导入,正是因为我这样做了,每当我安装pod
时,CocoaPods添加的额外搜索路径都没有被添加。所以我不得不删除我的自定义路径,然后它们出现了。然后我添加了我的自定义路径
最好执行pod反集成
,删除de xcworkspace文件,然后再次执行pod安装
。然后添加自定义生成设置
这是我得到的错误:
[!] 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
在我的例子中,问题是什么?我已经为我的Objective C项目下载了几个ObjC吊舱,然后我需要一个swift吊舱,所以我在吊舱文件中启用use_framwork
,并安装该swift吊舱,在安装该swift吊舱后,许多类中的ObjeC库都会收到该swift吊舱导入问题,所以
我做了什么来解决这个问题?
从pod文件中剪切所有目标C pod
打开终端并运行命令:cd路径/myProject
终端运行命令:pod安装
在pod文件中再次通过它(所有目标C pod)并保存它
终端运行命令:pod安装
你使用的是哪种版本的CoCoapod?最后一个?0.39.0?退出项目,走出去运行“pod install”@DiegoFreniche我已经尝试了0.39.0和从最新主分支构建的版本。如果您没有在同一个会话中安装所有pod,我建议您首先删除所有pod库,然后再次添加所有pod库。它在我的情况下起作用。@HarshIT我尝试删除/Pods
,Podfile.lock
和工作区
,并运行cleanpod install
-同样的问题。当我尝试使用@import
而不是导入时,我收到一个框架未找到的错误:。我认为这是我在一个空项目中测试过的一个主要问题,它可以正常工作,请创建一个测试项目来确保它正常工作,然后将您的目标与新项目的目标进行比较,我最终找到了它!通过从带有库的链接二进制文件中删除Pods.framework
,然后再次手动添加,问题得到了解决。谢谢你的帮助!你可以编辑你的答案,我会接受:)更好:自动回答你自己。你已经找到了有效的方法!谢谢,迭戈。我发现在添加之后,可以使用\u框架代码>经典的导入给我带来了问题(重复的定义等等)。通过将它们替换为@import
s,我的构建又被修复了。这很奇怪,你真的打开了工作区而不是项目吗?@AncAinu是的,我在项目中有两个目标,框架仅针对其中一个目标链接,所以我不得不手动添加嵌入式Pods框架构建步骤:(下次,运行此()要删除CoCoaPod的所有痕迹,请pod安装
again@Ponf我也遇到过,有3个目标,但只在“构建设置”>“嵌入Pods框架”中将Pods.framework
链接到第一个目标。遗憾的是,它不会自动这样做。这个“链接二进制文件与库”在哪里?我看不到它?