【问题标题】:No such module 'FBSDKCoreKit' XCODE 7.4没有这样的模块 'FBSDKCoreKit' XCODE 7.4
【发布时间】:2015-11-11 18:37:18
【问题描述】:

我正在尝试使用 FBSDKCoreKitFBSDKLogin 添加 Facebook 登录功能。当我尝试将这两个框架导入到我的AppDelegate 文件时,它显示的错误是

“没有这样的模块'FBSDKCoreKit'”。

我将Allow Non-modular Includes In Framework ModulesNO更改为YES,但错误仍然存​​在。

我需要帮助来提出解决错误的解决方案。

【问题讨论】:

  • 我的项目目录名称中有一个空格,这导致了我的问题,需要在项目设置中编辑Framework Search Path,如下所示:stackoverflow.com/a/28486611

标签: ios swift facebook-sdk-4.0 xcode7-beta4


【解决方案1】:

我通过将FacebookSDK 目录路径添加到“框架搜索路径”解决了这个问题

转到构建设置并搜索“框架搜索”

【讨论】:

  • 我能够通过下载 FB SDK、手动将其添加到我的项目中并在构建设置中添加本地文件路径来使其工作。如果我想通过 cocoapods 包含 FB 套件,你知道我会使用什么路径吗?
【解决方案2】:

我通过以下步骤解决了No such module 'FrameworkName' 问题:

1) 创建一个组,命名为Framework(可选,最佳实践)

2) 将所需的 SDK 从原始 SDK 路径拖到 Framework,在您的情况下为 FBSDKCoreKitFBSDKLoginKit

3) 当对话框弹出“选择添加这些文件的选项:”时,选择以下:

Facebook SDK 4.0 版的附加步骤:

4)在项目编辑器中选择目标并点击Build Settings,将Framework Search Paths更改为:~/Documents/FacebookSDKDirectoryName

【讨论】:

  • 如果您与其他人一起工作,他们是否也必须将 SDK 放在本地计算机上的同一目录中? (即~/Documents/FacebookSDKDirectoryName)。将SDK直接复制到app文件夹中不是更容易吗?
【解决方案3】:

我想推荐一种最简单的方法。

  1. 将鼠标放在您的项目上(在 xcode 中)
  2. 然后右键单击 > 将文件添加到...
  3. 添加您的框架文件。
  4. 您还需要将 Allow Non-modular Includes In Framework Modules 设置从 NO 更改为 YES,

爸爸!像魅力一样工作!

【讨论】:

    【解决方案4】:

    如果您正在使用 pod,则只需删除所有 pod 文件和相关文件夹,然后从第一步开始

    init pod.

    然后打开该 pod 文件并添加以下框架

    pod 'FBSDKCoreKit'
    pod 'FBSDKShareKit'
    pod 'FBSDKLoginKit'
    

    然后pod install

    并将其导入到 swift 文件中并享受 :)

    如果您直接将文件夹添加到项目中,请确保标记了“如果需要则复制”

    【讨论】:

      【解决方案5】:

      请尝试使用 .xcworkspce 而不是 .xcodeproj 打开项目 作为工作区加载所有依赖项。

      【讨论】:

      • 这似乎无法回答问题。请详细说明(如果它应该回答问题)或发表评论。
      【解决方案6】:

      这是通常的嫌疑人。 检查您的框架文件夹。检查项目 -> 构建阶段 -> 将二进制文件与库链接,并确保包含 FBSDKCoreKitFBSDKLoginKit

      如果它们在那里,并且错误仍然存​​在,请点击每个框架,并确保在文件检查器下选中 Target Membership

      【讨论】:

      • FBSDKCoreKit 和 FBSDKLoginKit 包含在带有库的链接二进制文件中。并且还检查了每个目标成员资格。
      【解决方案7】:

      我已经通过将框架复制到应用程序的文件夹来解决这个问题。您的应用程序不知道框架的路径。

      【讨论】:

        【解决方案8】:

        我通过输入import FBSDKLoginKit 解决了这个问题 不要抄袭!!写吧。 希望对你有帮助

        【讨论】:

          【解决方案9】:

          为我解决的问题是删除 pods 文件夹并再次运行安装命令:

          rm -Rf Pods 
          pod install
          

          【讨论】:

            【解决方案10】:

            看起来您还必须添加到 Bridging-Header.h 文件:

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

            #import <FBSDKShareKit/FBSDKShareKit.h>
            

            仅在使用 Objective-C 版本的框架文件时才需要使用 Bridging-Header.h。但是,Facebook 网站上的 Swift 教程确实省略了使用 Swift 构建的框架文件的关键步骤,特别是在那里导入 FBSDKCoreKit 后的 AppDelegate 调整。

            【讨论】:

              【解决方案11】:

              在 AppDelegate 中导入:

              import FacebookCore
              import FacebookLogin
              

              并添加:

              func application(_ application: UIApplication, didFinishLaunchingWithOptions 
              launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {        
              SDKApplicationDelegate.shared.application(application, 
              didFinishLaunchingWithOptions: launchOptions)
              
                  return true
              }
              
              func application(_ app: UIApplication, open url: URL, options: 
              [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
                  return SDKApplicationDelegate.shared.application(app, open: url, 
                          options: options)
              }
              

              【讨论】:

                【解决方案12】:

                这为我解决了这个问题:确保在运行 Pod 安装后清理并构建您的项目。

                从菜单:Product/clean & then build。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2015-11-12
                  • 2022-06-16
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-02-19
                  • 2018-10-23
                  • 2018-01-17
                  • 1970-01-01
                  相关资源
                  最近更新 更多