2

XCode 8 を使用して最新の Facebook SDK 4.16.0 を Swift 3.0 プロジェクトに統合するときに問題が発生しました。手動でプロジェクトに Facebook SDK を追加しました ここに画像の説明を入力

フレームワーク検索パス ここに画像の説明を入力

「モジュール FBSDKLoginKit をビルドできませんでした」というコンパイル エラーが発生しました。
コンパイル エラー

FBSDKLoginKit.h に移動すると、「FBSDKLoginKit/FBSDKLoginButton.h」ファイルが見つからないというエラーが表示されます。 ファイルが見つかりません

検索したところ、関連する可能性があることがわかりましたCould not build module 'FBSDKCoreKit' For FacebookSDK 4 . いくつかのアプローチを試みましたが、うまくいきませんでした。

よろしくお願いします。ありがとうございました。

4

1 に答える 1

0

同じ問題が発生しました。このリンクのおかげで解決できました。このリンクは、私の迅速なプロジェクトを Facebook SDK と完全に統合するのに実際に役立ちました。しかし、投稿が少し古くなっている可能性があるため、いくつかのことを別の方法で行う必要がありました。特に 1 つは私の appdelegate です。私が終わったときの私の様子は次のとおりです。

import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}

public func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
{
    return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
}

func applicationWillResignActive(_ application: UIApplication) {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}

func applicationDidEnterBackground(_ application: UIApplication) {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

func applicationWillEnterForeground(_ application: UIApplication) {
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}

func applicationDidBecomeActive(_ application: UIApplication) {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    FBSDKAppEvents.activateApp()
}

func applicationWillTerminate(_ application: UIApplication) {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}

したがって、基本的にリンクをたどることは役に立ちますがappdelegate.swift、特にapplication関数とapplicationDidBecomeActive関数を上に貼り付けたように見せる必要があります。

また、bridge-header ファイルを作成した後、プロジェクトのビルド設定に追加すると、次のようになりました。

リンクでは、プロジェクトのディレクトリを次のように含める必要があると書かれています が、それを試してみると、すでにプロジェクトディレクトリから探しているように見えたので、無効なパスであるprojectName/Bridging-Header.hヘッダーファイルを探してしまいました。projectName/projectName/Bridging-Header.hそのため、代わりに上記のスクリーンショットのように追加しました。

于 2016-10-29T14:04:47.847 に答える