首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FacebookSDKV4.7中的CocoaPods v0.39.0错误

FacebookSDKV4.7中的CocoaPods v0.39.0错误
EN

Stack Overflow用户
提问于 2015-10-12 16:43:15
回答 2查看 990关注 0票数 7

旧Cocoapods配置

我使用的是Xcode 7 Beta 4,最初我使用Cocoapods版本0.38.2,当我在终端运行pod install --verbose时,它说它下载了Bolts、FBSDKCoreKit、FBSDKLoginKit、FBSDKShareKit、FBSDKMessengerShareKit和iOS 8.1的依赖项。通过这个设置,我的应用程序编译成功。下面是用于导入Facebook的Podfile和Objective桥接文件(所以Swift识别其引用的方法和Objective类)。请注意,在我的Podfile中显示的特定版本也是被安装的版本,即使在撰写本文时我没有显式地指定它们。

Podfile

代码语言:javascript
复制
xcodeproj '/Users/<my_username>/MyApp/MyApp.xcodeproj'
pod "FBSDKCoreKit", "~> 4.7.0";
pod "FBSDKLoginKit", "~> 4.7.0";
pod "FBSDKShareKit", "~> 4.7.0";
pod "FBSDKMessengerShareKit", "~> 1.3.1";

MyAppObjCBridging.h

代码语言:javascript
复制
#ifndef MyAppObjCBridging_h
#define MyAppObjCBridging_h

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKMessengerShareKit/FBSDKMessengerShareKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>

#endif

更新到Cocoapods v0.39.0时遇到的问题(来自0.38.2)

控制台显示消息"CocoaPods 0.39.0可用。要更新使用: gem安装cocoapods。在达到1.0版之前,CocoaPods的功能可以也会改变。我们强烈建议您始终使用最新版本。“因此,我在终端中执行sudo gem install cocoapods安装了这个最新版本的Cocoapods 0.39.0。

但是,当我编译我的应用程序时,它给了我以下错误:

/Users//MyApp/MyApp/MyAppObjCBridging.h:14:9:“FBSDKCoreKit/FBSDKCoreKit.h”文件未找到

在Xcode i中,“产品>清洁”(CMD+SHIFT+K),但这并没有任何区别。因此,我在终端中运行了sudo gem uninstall cocoapods (其中列出了当前安装的版本0.38.2和0.39.0 ),并从列表中选择了0.39.0版本来卸载最新版本并恢复到0.38.2。然后我运行pod install --verbose。当我试图编译我的应用程序时,它成功地编译并在模拟器中再次运行。

问题1

为什么当我使用Cocoapods版本0.39.0而不是旧版本0.38.2时,它无法找到"FBSDKCoreKit/FBSDKCoreKit.h“?

问题2

如果在使用Cocoapods版本0.38.2 (用我的应用程序编译的版本)时,我决定将platform :ios, '9.0'添加到我的platform :ios, '9.0'文件的第一行(在现有内容之上)并在终端中运行pod install --verbose,终端消息告诉我,它安装了iOS 9.0的每个pod目标(而不是iOS 8.1) (即iOS 8.1)。当我运行我的应用程序时,它成功地在模拟器中编译和打开,并显示一些与iOS9相关的新警告,其中大部分我都理解。但是,我不明白为什么会出现这个。为什么会出现这样的警告:

ld:警告:选项'-L/Users/Ls/code/swift/FreeWifiSearch/FreeWifiSearch/build/Debug-iphoneos‘找不到目录

问题3

当使用Cocoapods版本0.38.2 (与我的应用程序一起编译的版本)时,如果我决定将use_frameworks!添加到Podfile的第一行,将platform :ios, '9.0'添加到Podfile的第二行(超出其现有内容),然后在终端中运行pod install --verbose,终端消息告诉我,它安装了iOS 9.0的每个pod目标(而不是iOS 8.1)。

当我运行我的应用程序时,会出现以下错误:

  • 未解析标识符“FBSDKLoginButton”的使用
  • 未解析标识符“FBSDKLoginManager”的使用
  • 未解析标识符“FBSDKLoginBehaviour”的使用

为什么在我的Podfile顶部添加use_frameworks!会阻止我使用Facebook标识符?(注意到当我的Podfile顶部没有use_frameworks!时,我的应用程序成功地在Xcode模拟器中编译和运行,并且可以成功地检索Facebook访问令牌并登录到Facebook)

EN

回答 2

Stack Overflow用户

发布于 2015-11-17 19:35:59

由于提交了原始问题,因此执行了以下操作,并没有导致编译器错误:

  • 通过从App下载最新版本,从Xcode 7 Beta 4升级到Xcode 7.1.1
  • use_frameworks!platform :ios, '9.0'添加到Podfile的顶部
  • 将部署目标更改为iOS 9.0:项目设置>目标>通用>部署信息>部署目标> 9.0
  • 使用CocoaPods将sudo gem install cocoapods更新为v0.39
  • pod update --verbose重新安装吊舱
  • 在包含Facebook方法的类之上添加了import FBSDKLoginKit
  • 在Xcode中执行清除(Shift+CMD+K)和运行(CMD+R)以在设备上进行测试
票数 0
EN

Stack Overflow用户

发布于 2016-03-30 04:28:54

在生成设置中在目标标头搜索路径中添加"${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit"

对我来说现在没事了(CocoaPods 0.39,FBSDK4.10)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33086184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档