Facebook SDK Swift - 使用未声明的标识符
Facebook SDK Swift - Use of undeclared identifier
我使用的每个 Facebook 对象都得到 Use of undeclared identifier
学习本教程后:
TUTORIAL: HOW TO SHARE IN FACEBOOK SDK 4.1.X FOR 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)
第一步是创建 Podfile,例如:
use_frameworks!
pod 'ChameleonFramework/Swift'
pod 'GBDeviceInfo'
保存文件并通过命令安装或更新pods:
pod install / pod update
接下来,您应该在通用设置框架中添加:
如果您使用 Pods 并且您的项目在 Swift 上,则不需要将 headers 从 pods 导入到 Bridging_Header_h
将所需的 SDK 导入到您 swift 文件就足够了:
import FBSDKCoreKit
import FBSDKLoginKit
import FBSDKShareKit
对于Swift用户:Facebook Swift SDK 0.7.0
和0.8.0
似乎完全是FUBAR,没有即使在全新项目中也能使导入正常工作的方法。
通过在 Podfile
中指定以下内容恢复到 0.6.0
,教程和导入将再次起作用:
pod 'FacebookCore', '~> 0.6.0'
pod 'FacebookLogin', '~> 0.6.0'
pod 'FacebookShare', '~> 0.6.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 */
我使用的每个 Facebook 对象都得到 Use of undeclared identifier
学习本教程后: TUTORIAL: HOW TO SHARE IN FACEBOOK SDK 4.1.X FOR 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)
第一步是创建 Podfile,例如:
use_frameworks!
pod 'ChameleonFramework/Swift'
pod 'GBDeviceInfo'
保存文件并通过命令安装或更新pods:
pod install / pod update
接下来,您应该在通用设置框架中添加:
如果您使用 Pods 并且您的项目在 Swift 上,则不需要将 headers 从 pods 导入到 Bridging_Header_h 将所需的 SDK 导入到您 swift 文件就足够了:
import FBSDKCoreKit
import FBSDKLoginKit
import FBSDKShareKit
对于Swift用户:Facebook Swift SDK 0.7.0
和0.8.0
似乎完全是FUBAR,没有即使在全新项目中也能使导入正常工作的方法。
通过在 Podfile
中指定以下内容恢复到 0.6.0
,教程和导入将再次起作用:
pod 'FacebookCore', '~> 0.6.0'
pod 'FacebookLogin', '~> 0.6.0'
pod 'FacebookShare', '~> 0.6.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 */