2015-04-20 9 views
6

Próbuję zintegrować analizowania i Facebooka SDK z mojej aplikacji przy użyciu Xcode 6.3 i otrzymuję te błędy podczas próby budowy:Błąd kompilacji za pomocą analizowania i Facebooka ram w Xcode 6.3 (SWIFT)

Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_FBSDKAppEvents", referenced from: 
     __TMaCSo14FBSDKAppEvents in AppDelegate.o 
    "_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from: 
     __TMaCSo24FBSDKApplicationDelegate in AppDelegate.o 
    "_OBJC_CLASS_$_PFAnalytics", referenced from: 
     __TMaCSo11PFAnalytics in AppDelegate.o 
    "_OBJC_CLASS_$_PFFacebookUtils", referenced from: 
     __TMaCSo15PFFacebookUtils in AppDelegate.o 
    "_OBJC_CLASS_$_Parse", referenced from: 
     __TMaCSo5Parse in AppDelegate.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

I nie wiem, co to oznacza, ale wypróbowałem wiele innych rozwiązań, takich jak czyszczenie, usuwanie folderu danych pochodnych, sprawdzanie wszystkich moich frameworków i nadal nie mogę rozwiązać problemu. Jeśli ktoś ma jakiś pomysł, jak to naprawić, byłbym bardzo wdzięczny. Dziękuję za Twój czas.

Edit To Bridging-header.h że używam:

#import <AFNetworking.h> 
#import <BDBOAuth1RequestOperationManager.h> 
#import <NSDictionary+BDBOAuth1Manager.h> 
#import <UIImageView+AFNetworking.h> 
#import <UIScrollView+SVInfiniteScrolling.h> 
#import <FBSDKCoreKit/FBSDKCoreKit.h> 
#import <FBSDKLoginKit/FBSDKLoginKit.h> 
#import <FBSDKShareKit/FBSDKShareKit.h> 
#import <Parse/Parse.h> 
#import <ParseCrashReporting/ParseCrashReporting.h> 
#import <ParseFacebookUtilsV4/PFFacebookUtils.h> 
#import <Bolts/Bolts.h> 

Jest to plik AppDelegate.swift:

import UIKit 
import CoreData 
import Parse 
import FBSDKCoreKit 
import FBSDKLoginKit 
import Bolts 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

var window: UIWindow? 

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true) 

    // Type casting in swift is "as Type", you'll need to unwrap optionals however. 
    let tabBarController = self.window!.rootViewController as! UITabBarController 
    let tabBar = tabBarController.tabBar as UITabBar 

    // I prefer to use 0 based labels since the array is 0 based 
    let tabBarItem0 = tabBar.items![0] as! UITabBarItem 
    let tabBarItem1 = tabBar.items![1] as! UITabBarItem 
    let tabBarItem2 = tabBar.items![2] as! UITabBarItem 

    // The UIColor method you are using is an initializer in swift 
    tabBar.tintColor = UIColor(red: 62.0/255.0, green: 191.0/255.0, blue: 180.0/255.0, alpha: 1.0) 

    // UIImage also has an initializer for your situation in swift 
    tabBarItem0.selectedImage = UIImage(named: "Discover TabBar Select.pdf") 
    tabBarItem1.selectedImage = UIImage(named: "Me TabBar Select.pdf") 
    tabBarItem2.selectedImage = UIImage(named: "Settings TabBar Select.pdf") 

    //Facebook SDK Setup 
    FBSDKApplicationDelegate.sharedInstance() 
    Parse.setApplicationId("HxjVTJZ2rZA6qFBl0Xaji9z12HYQmTFPIXhVcfPp", clientKey:"8FJT7KHSmDPZi1AtpFS1GvTw39qevvB0JuimwWdS") 

    if let launchOptions = launchOptions { 
     PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) 
    } else { 
     PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions([NSObject:AnyObject]()) 
    } 

    // [Optional] Power your app with Local Datastore. For more info, go to 
    // https://parse.com/docs/ios_guide#localdatastore/iOS 
    Parse.enableLocalDatastore() 

    // [Optional] Track statistics around application opens. 
    PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions) 

    return true 
} 

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() 
} 

przeciągnąłem najnowszą analizowania i Facebook SDK Frameworks do mojego projektu i dodano wymagane dodatkowe frameworki (w tym libsqlite3.dylib i libz.dylib) za pośrednictwem zakładki "Link Binary with Libraries" w sekcji "Build Phases"

Mam nadzieję, że te dodatkowe informacje są przydatne.

+0

Czy możesz podać kod, który próbujesz zbudować? – MattG

+0

@MattG Mam zaktualizowane moje pytanie i doceniam twoją pomoc – Armin

+0

@Armin naprawiłeś ten problem? –

Odpowiedz

0

Po aktualizacji do wersji 1.7.4 Parse, problem ten stała się. Mam nadzieję, że pomoże to innym ludziom, którzy stanęli wobec tego samego problemu co ja!

8

Też miałem do czynienia z tym samym problemem. W mojej kopalni, Facebook sdk 4.1. Były to moje kroki: -

1) Idź do budowy Ustawienia

2) Typ inne flagi linkera. a ponieważ używam obiektywu C., więc kliknąłem na niego i dodałem dwie nowe wartości. pierwszy to -ObjC, a drugi to $ (dziedziczony). Po dodaniu tych dwóch wartości Twoje inne flagi łącznikowe będzie pokaz jak -ObjC -ObjC - | „Pods -...... coś takiego jak używam cocapods

3) teraz wpisać..” Pozwól dla -modular Zawiera w modułach szkieletowych "i użyj wartości YES:

4) następnie wpisz" Włącz moduły (C i Objective-C) i powinno być TAK.

i wyczyść i zbuduj swój projekt. Jeśli nadal nie działa dla Ciebie, sprawdź biblioteki Binarne łącza. W My Mine są to ramy.

Accounts.framework 
AddressBook.framework 
Foundation.framework 
CFNetwork.framework 
GoolgeMaps.Framework 
Social.framework 
CoreData.framework 
QuartzCore.framework 
Security.framework 
CoreLocation.framework 
CoreGraphics.framework 
UIKit.framework 

Proszę spróbować Dzięki

+1

Próbowałem postępować zgodnie z instrukcjami i otrzymałem 45 dodatkowych błędów – Armin

+0

WOW! Zadziałało. Sprawdziłem LOOONG czas na odpowiedź do tego. Będziesz mieć ponad 100 głosów :-) –

0

Rozwiązałem mój problem polegający na dodaniu frameworków Facebooka do połączonych frameworków i bibliotek. Uwaga, nie zostało to uwzględnione w dokumentacji logowania na Facebooku.

Powiązane problemy