问题
I am getting Use of undeclared identifier
for every Facebook Object I use
Following this tutorial: TUTORIAL: HOW TO SHARE IN FACEBOOK SDK 4.1.X FOR SWIFT
But I've got the following error:
I've added Facebook framework via cocoapods:
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
And it was installed successfully
I've added bridging header
#ifndef Bridging_Header_h
#define Bridging_Header_h
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#endif /* Bridging_Header_h */
The bridging header is connected:
I've configured my .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>
Here is the code:
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)
回答1:
If you use Pods and your project is on Swift you don't need to import headers from pods to Bridging_Header_h It's suficient to import needed SDK to you swift file like:
import FBSDKCoreKit
import FBSDKLoginKit
import FBSDKShareKit
回答2:
First step is create Podfile, for example:
use_frameworks!
pod 'ChameleonFramework/Swift'
pod 'GBDeviceInfo'
Save file and install or update pods by command:
pod install / pod update
Next, you should add in general settings framework:
回答3:
For Swift users: Facebook Swift SDK 0.7.0
and 0.8.0
seem to be completely FUBAR, there is no way to get imports to work properly even on a completely new project.
Revert to 0.6.0
by specifying the following in your Podfile
, and the tutorials and imports will work again:
pod 'FacebookCore', '~> 0.6.0'
pod 'FacebookLogin', '~> 0.6.0'
pod 'FacebookShare', '~> 0.6.0'
来源:https://stackoverflow.com/questions/33328089/facebook-sdk-swift-use-of-undeclared-identifier