Use Compiler to Extract Swift Strings Yes
Weak References In Manual Retain Release YES。
![](https://img.haomeiwen.com/i1416268/5e374562361efa17.png)
![](https://img.haomeiwen.com/i1416268/077cca29d3910684.png)
![](https://img.haomeiwen.com/i1416268/2c36f32753bf4775.png)
![](https://img.haomeiwen.com/i1416268/0712bfb1412375a4.png)
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1278790479330559</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>1278790479330559</string>
<key>FacebookClientToken</key>
<string>ac210e705ae6c82f42ecaac8fca45ad0</string>
<key>FacebookDisplayName</key>
<string>奔奔快跑</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
</array>
![](https://img.haomeiwen.com/i1416268/7c3d0c27e5122e35.png)
// AppDelegate.swift
import UIKit
import FacebookCore
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
return true
}
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]
) -> Bool {
ApplicationDelegate.shared.application(
app,
open: url,
sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
annotation: options[UIApplication.OpenURLOptionsKey.annotation]
)
}
}
// SceneDelegate.swift
import FacebookCore
...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url else {
return
}
ApplicationDelegate.shared.application(
UIApplication.shared,
open: url,
sourceApplication: nil,
annotation: [UIApplication.OpenURLOptionsKey.annotation]
)
}
![](https://img.haomeiwen.com/i1416268/689f147b1c012407.png)
// Add this to the header of your file, e.g. in ViewController.swift
import FacebookLogin
// Add this to the body
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let loginButton = FBLoginButton()
loginButton.center = view.center
view.addSubview(loginButton)
}
}
![](https://img.haomeiwen.com/i1416268/6f93a48438d6f547.png)
override func viewDidLoad() {
super.viewDidLoad()
if let token = AccessToken.current,
!token.isExpired {
// User is logged in, do work such as go to next view controller.
}
}
![](https://img.haomeiwen.com/i1416268/2bafaedd556d5e5a.png)
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
![](https://img.haomeiwen.com/i1416268/e7e1ee4cd3d458ce.png)
网友评论