2015-04-04 3 views
6

Здесь в этом журнале изменений (facebook change-log) указано, что нет необходимости в объективах с мостиком объектива для быстрого доступа.Facebook SDK 4.0.1 Быстрые ошибки xcode 6.2 iOS 8.2

Но когда я import FBSDKCoreKit в AppDelegate.swift эти ошибки происходят:

FBSDKAppLinkResolver.h

/Users/[username]/Documents/FacebookSDK/FBSDKCoreKit.framework/ Заголовки/FBSDKAppLinkResolver.h: 21: 9: Включить немодульный заголовок внутри фрейм-модуля 'FBSDKCoreKit.FBSDKAppLinkResolver'

AppDelegate.swift

/Users/ashrafkholeif/Projects/xcode/TabbedApplicationTemplate/TabbedApplicationTemplate/TabbedApplicationTemplate/AppDelegate.swift:10:8: Не удалось построить Objective-C модуль 'FBSDKCoreKit'

редактировать: Я даже установить позволяют немодульный заголовок внутри каркасных модулей YES.

ответ

7

У меня была такая же проблема, решение, предложенное по адресу https://stackoverflow.com/a/29457503/425682 для проекта Objective-C, сразу работало на моем проекте Swift:

Запишите новый файл в папку SDK для Facebook в разделе Bolts.framework/Modules/module.modulemap со следующим содержанием:

framework module Bolts { 
umbrella header "Bolts.h" 

export * 
module * { export * } 


explicit module BFAppLinkResolver { 
    header "BFAppLinkResolver.h" 
    link "BFAppLinkResolver" 
    export * 
}} 

Это работает без зависания заголовков (не требуется больше в версии 4.0.1 в SDK, как указано в ОП), и без изменений в настройках сборки.

EDIT: этот bug теперь исправлен с версии 4.1 SDK для Facebook, библиотека работает без каких-либо изменений.

+0

Это замечательно! Лучшее решение до сих пор :) Удаление модулей показалось неуклюжим, и беспорядок с параметрами clang не сработал. –

1

Создать новый файл заголовка и импортировать любой Objective-C код, который вы используете, что-то вроде этого ..

#ifndef RJv1_RJBridge_h 
#define RJv1_RJBridge_h 
#import "NSMutableString+Obfuscated.h" 
#import <FBSDKCoreKit/FBSDKCoreKit.h> 
#import <FBSDKLoginKit/FBSDKLoginKit.h> 
#endif 

Затем перейдите к вашей сборке Настройки поищите Install Objective-C Compability Header, и убедитесь, что установлен в Yes , затем добавьте относительный путь к вашему файлу заголовка в поле Objective-C Bridging Header.

Надеюсь, что это сработает!

+0

Пробовал, что первое. Это не сработало. –

2

Это ошибка, и Facebook в настоящее время «присваивает это соответствующей команде».

Чтобы получить обновления этого вопроса по этой ссылке:

https://developers.facebook.com/bugs/362995353893156/

и нажмите подписаться.

Надеюсь, это не займет слишком много времени, чтобы исправить.

Также здесь родственный вопрос недавно отправил на SO:

issue using FBSDK in swift iOS application

И некоторые люди нашли успех, используя ответы на эту ссылку (никто не работал для меня):

Facebook iOS8 SDK build module error for FBSDKCoreKit