11

我得到Use of undeclared identifier了我使用的每个 Facebook 对象

遵循本教程: 教程:如何在 FACEBOOK SDK 4.1.X 中共享 SWIFT

但我有以下错误:

在此处输入图像描述

我通过 cocoapods 添加了 Facebook 框架:

pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'

并且安装成功

在此处输入图像描述

我添加了桥接头

#ifndef Bridging_Header_h
#define Bridging_Header_h

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

#endif /* Bridging_Header_h */

桥接头连接:

在此处输入图像描述

我已经配置了我的 .plist

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb*****</string>
            </array>
        </dict>
    </array>
    <key>FacebookAppID</key>
    <string>*****</string>
    <key>FacebookDisplayName</key>
    <string>*****</string>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>facebook.com</key>
            <dict>
                <key>NSIncludesSubdomains</key> <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
            </dict>
            <key>fbcdn.net</key>
            <dict>
                <key>NSIncludesSubdomains</key> <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  <false/>
            </dict>
            <key>akamaihd.net</key>
            <dict>
                <key>NSIncludesSubdomains</key> <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
            </dict>
        </dict>
    </dict>

这是代码:

let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
        content.contentURL = NSURL(string: "<INSERT STRING HERE>")
        content.contentTitle = "<INSERT STRING HERE>"
        content.contentDescription = "<INSERT STRING HERE>"
        content.imageURL = NSURL(string: "<INSERT STRING HERE>")

        let button : FBSDKShareButton = FBSDKShareButton()
        button.shareContent = content
        button.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 100) * 0.5, 50, 100, 25)
        self.view.addSubview(button)
4

4 回答 4

13

如果您使用 Pods 并且您的项目在 Swift 上,则无需将标头从 pod 导入Bridging_Header_h 将所需的 SDK 导入到您的 swift 文件中就足够了,例如:

import FBSDKCoreKit
import FBSDKLoginKit
import FBSDKShareKit
于 2015-11-01T09:14:48.800 回答
5

第一步是创建 Podfile,例如:

use_frameworks!
pod 'ChameleonFramework/Swift'
pod 'GBDeviceInfo'

保存文件并通过命令安装或更新 pod:

pod install / pod update

接下来,您应该添加通用设置框架:

在此处输入图像描述

于 2015-10-30T12:36:50.210 回答
0

我也被困住了,直到我发现这是一个调试和发布问题。

而不是使用

#ifndef Bridging_Header_h
#define Bridging_Header_h

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

#endif /* Bridging_Header_h */

你应该使用

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

#ifndef Bridging_Header_h
#define Bridging_Header_h

#endif /* Bridging_Header_h */ 
于 2022-02-01T06:30:37.663 回答
0

对于Swift用户:Facebook Swift SDK似乎完全是 FUBAR,即使在一个全新的项目上也无法让导入正常工作0.7.00.8.0

0.6.0通过在您的 中指定以下内容来恢复到Podfile,教程和导入将再次起作用:

pod 'FacebookCore', '~> 0.6.0'
pod 'FacebookLogin', '~> 0.6.0'
pod 'FacebookShare', '~> 0.6.0' 
于 2019-08-22T10:48:16.393 回答