2015-08-18 92 views
7

我想添加Facebook登录功能使用FBSDKCoreKitFBSDKLogin。当我尝试将这两个框架导入到我的AppDelegate文件时,它显示的错误是没有这样的模块'FBSDKCoreKit'XCODE 7.4

“No such module'FBSDKCoreKit'”。

我改变Allow Non-modular Includes In Framework ModulesNOYES,但错误依然存在。

我需要帮助,想出解决方案来解决错误。

+0

我不得不在项目目录名的空白,引起了我的问题,需要编辑'框架搜索Path'在项目设置像这里:http://stackoverflow.com/a/28486611 –

回答

0

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

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

+1

FBSDKCoreKit和FBSDKLoginKit包含在链接库与二进制文件。并且还为每个检查目标成员资格。 – sekaisan

12

我加入FacebookSDK目录路径“框架搜索路径”

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

+5

我能够通过下载FB SDK,将其手动添加到我的项目中,并在构建设置中添加本地文件路径来获得此功能。如果我想通过cocoapods包含FB套件,你知道我会使用什么路径吗? – mkc842

0

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

7

我解决No such module 'FrameworkName'问题有以下步骤:

1)创建一个组,称之为Framework(可选,最好的做法)

由原来的SDK路径Framework 2)将所需的SDK(S)你的情况FBSDKCoreKitFBSDKLoginKit

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

options for adding these files

对于Facebook SDK 4.0版本额外步骤:

4)选择在项目编辑目标,然后单击生成设置,变化框架搜索路径到:〜/文档/ FacebookSDKDirectoryName

+0

如果您正在与他人合作,他们是否也必须将SDK放在本地计算机上的相同目录中? (即〜/ Documents/FacebookSDKDirectoryName)。将SDK直接复制到应用程序文件夹中是不是更容易? – SimplyLearning

2

我想建议最简单的方法之一。

  1. 把你的鼠标在你的项目(在Xcode)
  2. 并右键单击>将文件添加到...
  3. 添加您的框架文件。
  4. ,你也需要改变允许非模块化包括框架模块,可从NO到YES设置,

达达!奇迹般有效!

1

如果您使用的豆荚然后就删除所有文件吊舱和相关的文件夹,并从第一步

启动“初始化荚”。

然后打开POD文件,并添加以下框架 荚 'FBSDKCoreKit' 荚 'FBSDKShareKit' 荚 'FBSDKLoginKit'

然后安装荚

,并将其导入到快捷文件,并享受: )

,如果你是直接添加文件夹到您的项目然后确保“复制如果需要的话”被标记

0

我已通过键入import FBSDKLoginKit 解决了此问题请勿复制!写吧。 希望它有助于

0

什么固定它,我被移除荚文件夹,然后再次运行安装命令:

rm -Rf Pods 
pod install 
0

看起来你也必须添加到分接Header.h文件:

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

#import <FBSDKShareKit/FBSDKShareKit.h> 

当您使用T才被需要使用桥接,Header.h的他是Objective-C版本的框架文件。然而,Facebook站点上的Swift教程确实没有提供使用Swift构建的框架文件的关键步骤,特别是在导入FBSDKCoreKit之后的AppDelegate调整。

0

在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) 
}