我正在构建一个带有 Facebook 登录和 Unity-Swift 集成的应用程序。当我在 Xcode 中构建应用程序时,我在 DemoApp-Swift.h 文件中遇到了语义问题和泛型问题。错误说FBSDKLoginButtonDelegate是未知类。查看我的代码:
LoginViewController.swift
import UIKit
import FBSDKLoginKit
import FBSDKShareKit
import FBSDKCoreKit
import Firebase
import Toast_Swift
import TRON
import CoreData
class LoginViewController: UIViewController, FBSDKLoginButtonDelegate{
let loginButton : FBSDKLoginButton = {
let button = FBSDKLoginButton()
button.readPermissions=["email"]
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(loginButton)
// //frame's are obselete, please use constraints instead because its 2016 after all
loginButton.frame = CGRect(x: 110, y: 300, width: view.frame.width - 200, height: 30)
if (FBSDKAccessToken.current() != nil ){
//some code
}
loginButton.delegate = self
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("User Logged Out")
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
self.view.makeToastActivity(.center)
if error != nil {
print(error)
return
}
let fbloginresult : FBSDKLoginManagerLoginResult = result
if result.isCancelled {
return
}
if(fbloginresult.grantedPermissions.contains("email"))
{
}
}
}
AppDelegate.swift
import UIKit
import FBSDKCoreKit
import FBSDKShareKit
import FBSDKLoginKit
import Firebase
import CoreData
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var application: UIApplication?
@objc var currentUnityController: UnityAppController!
var isUnityRunning = false
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = LoginViewController()
self.application = application
unity_init(CommandLine.argc, CommandLine.unsafeArgv)
currentUnityController = UnityAppController()
currentUnityController.application(application, didFinishLaunchingWithOptions:launchOptions)
startUnity()
stopUnity()
window?.makeKeyAndVisible()
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let handled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
return handled
}
//some unity codes
}
桥接头.h
#ifndef BRIDGING_HEADER
#define BRIDGING_HEADER
#import <UIKit/UIKit.h>
#import "UnityUtils.h"
#import "UnityAppController.h"
#import "UnityInterface.h"
#endif /* BRIDGING_HEADER */
我花了更多时间来修复它,但我无法弄清楚。我可以使用 Xcode 编译器建议来解决这个问题,但是当我构建存档文件时,它总是会因同样的问题而失败。
请帮我。
