ios - react - Error de compilación utilizando los marcos Parse y Facebook en Xcode 6.3(Swift)
fbsdkcorekit (3)
Después de actualizar Parse a la versión 1.7.4, este problema se solucionó. ¡Espero que esto ayude a otras personas que enfrentan el mismo problema que yo!
Estoy intentando integrar el SDK de Parse y Facebook con mi aplicación usando Xcode 6.3 y estoy obteniendo estos errores cuando intento construir:
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)
No sé lo que esto significa, pero he intentado con muchas otras soluciones, como limpiar, eliminar la carpeta Derived Data, verificar todos mis frameworks y todavía no puedo resolver el problema. Si alguien tiene alguna idea de cómo arreglar esto, estaría muy agradecido. Gracias por tu tiempo.
Editar Esto es Bridging-Header.h que estoy usando:
#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>
Este es el archivo 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()
}
Arrastré los últimos Parse y Facebook SDK Frameworks a mi proyecto y agregué los Frameworks adicionales necesarios (incluyendo el libsqlite3.dylib y el libz.dylib) a través de la pestaña "Link Binary with Libraries" en la sección "Build Fhases"
Espero que esta información adicional sea útil.
Lo que solucionó mi problema era agregar los marcos de Facebook a marcos y bibliotecas vinculados. Tenga en cuenta que esto no estaba incluido en la documentación de inicio de sesión de Facebook.
También me enfrenté al mismo problema. En My mine, Facebook sdk 4.1. Estos fueron mis pasos:
1) Ir a Configuraciones de compilación
2) Escriba otras banderas enlazadoras . y dado que estoy usando el objetivo C. entonces hice clic en él y agregué dos nuevos valores. primero es -ObjC y el segundo es $ (heredado) . Después de agregar estos dos valores, las otras banderas del enlazador se mostrarán como -ObjC -ObjC - | "Pods -...... algo así como as. Estoy usando cocapodos.
3) ahora escriba "Permitir inclusiones no modulares en los módulos del marco" y use el valor SÍ.
4) escriba "Habilitar módulos (C y Objective-C) y debe ser SÍ.
y limpia y construye tu proyecto. Si todavía no funciona para usted, por favor revise sus Bibliotecas Binarias Link. En Mi Mina, estos son marcos.
Accounts.framework
AddressBook.framework
Foundation.framework
CFNetwork.framework
GoolgeMaps.Framework
Social.framework
CoreData.framework
QuartzCore.framework
Security.framework
CoreLocation.framework
CoreGraphics.framework
UIKit.framework
Por favor, inténtalo Gracias