2015-04-04 12 views
6

यहां इस परिवर्तन-लॉग (facebook change-log) में कहा गया है कि स्विफ्ट के लिए उद्देश्य-सी ब्रिजिंग हेडर की आवश्यकता नहीं है।फेसबुक एसडीके 4.0.1 स्विफ्ट त्रुटियां xcode 6.2 आईओएस 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: ऑब्जेक्टिव-सी मॉड्यूल 'FBSDKCoreKit' का निर्माण नहीं किया जा सका

संपादित करें: मैं भी हाँ के ढांचे मॉड्यूल के अंदर गैर-मॉड्यूलर अनुमति देने के हैडर निर्धारित किया है।

उत्तर

7

मेरे पास एक ही समस्या थी, उद्देश्य-सी परियोजना के लिए https://stackoverflow.com/a/29457503/425682 पर सुझाए गए समाधान ने सीधे मेरे स्विफ्ट प्रोजेक्ट पर काम किया:

बोल्ट्स.फ्रेमवर्क/मॉड्यूल/मॉड्यूल के तहत फेसबुक एसडीके फ़ोल्डर में एक नई फाइल लिखें।निम्नलिखित सामग्री के साथ modulemap:, और निर्माण सेटिंग में परिवर्तन के बिना

framework module Bolts { 
umbrella header "Bolts.h" 

export * 
module * { export * } 


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

यह हेडर (एसडीके के रूप में ओ पी ने उल्लेख के संस्करण 4.0.1 में अब कोई आवश्यकता नहीं) को पूरा करने के बिना काम करता है।

संपादित करें: यह bug अब फेसबुक एसडीके के संस्करण 4.1 के रूप में तय किया गया है, लाइब्रेरी में कोई बदलाव किए बिना काम करता है।

+0

यह बहुत अच्छा है! अब तक का सबसे अच्छा समाधान :) मॉड्यूल हटाना गुंजाइश लग रहा था, और क्लैंग विकल्पों के साथ गड़बड़ाना काम नहीं किया। –

1

एक नया हेडर फाइल किसी भी उद्देश्य-सी कोड का उपयोग कर रहे कुछ इस तरह बना सकते हैं और आयात करते हैं, ..

#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

यह एक बग है और फेसबुक वर्तमान में "उचित टीम को असाइन कर रहा है"।

इस मुद्दे पर अपडेट के लिए इस लिंक का अनुसरण करें:

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

और सदस्यता मारा।

उम्मीद है कि इसे ठीक करने में उन्हें बहुत लंबा समय नहीं लगता है।

इसके अलावा यहां एक संबंधित सवाल हाल ही में एसओ पर तैनात है:

issue using FBSDK in swift iOS application

और कुछ लोगों को (कोई नहीं मेरे लिए काम किया है) इस लिंक पर जवाब का उपयोग कर सफलता मिली है:

Facebook iOS8 SDK build module error for FBSDKCoreKit

संबंधित मुद्दे