gpt4 book ai didi

swift2 - CocoaPods v0.39.0 错误与 Facebook SDK v4.7

转载 作者:行者123 更新时间:2023-12-02 09:17:18 24 4
gpt4 key购买 nike

旧的 Cocoapods 配置

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

播客文件

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
#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 时遇到的问题(从 v0.38.2)

控制台显示消息“CocoaPods 0.39.0 可用。更新使用:gem install cocoapods。在我们到达1.0版本之前,CocoaPods的功能可以并且将会改变。我们强烈建议您始终使用最新版本。”,所以我通过执行 sudo gem install cocoapods 安装了最新版本的 Cocoapods 0.39.0在终端。

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

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

在Xcode我“产品>清洁”(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'到我的 Podfile 的第一行(在其现有内容之上)并运行 pod install --verbose在终端中,终端消息告诉我它为 iOS 9.0(而不是 iOS 8.1)安装了每个 pod 目标(即 - Installing target FBSDKCoreKit iOS 9.0)。
当我运行我的应用程序时,它成功编译并在模拟器中打开并显示一些与 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(而不是 iOS 8.1)安装了每个 pod 目标。

当我然后运行我的应用程序时出现以下错误:
  • 使用未解析的标识符“FBSDKLoginButton”
  • 使用未解析的标识符“FBSDKLoginManager”
  • 使用未解析的标识符“FBSDKLoginBehaviour”

  • 为什么添加 use_frameworks!到我的 Podfile 顶部阻止我使用 Facebook SDK 标识符? (请注意,当我的 Podfile 顶部没有 use_frameworks! 时,我的应用程序成功编译并在 Xcode Simulator 中运行,我可以成功检索 Facebook SDK 访问 token 并登录 Facebook)

    最佳答案

    自发布原始问题以来,已执行以下操作并没有导致编译器错误:

  • 通过从 App Store 下载最新版本,从 Xcode 7 Beta 4 更新到 Xcode 7.1.1
  • 已添加 use_frameworks!platform :ios, '9.0'到 Podfile 顶部
  • 将部署目标更改为 iOS 9.0:项目设置 > 目标 > 常规 > 部署信息 > 部署目标 > 9.0
  • 使用 sudo gem install cocoapods 将 CocoaPods 更新到 v0.39
  • 使用 pod update --verbose 重新安装 Pod
  • 已添加 import FBSDKLoginKit在包含 Facebook SDK 方法的类上方
  • 在 Xcode 中执行 Clean (Shift+CMD+K) 和 Run (CMD+R) 以在设备上进行测试
  • 关于swift2 - CocoaPods v0.39.0 错误与 Facebook SDK v4.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33086184/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com