2012-11-10 17 views
11

फेसबुक आईओएस एसडीके 3.1.1 के साथ पर, मैं प्रदर्शन कर रहा हूँ लॉगिन बुला इस कॉल का उपयोग कर ACAccountStore से फेंका -NSInvalidArgumentException जब [FBSession openActiveSessionWithPermissions ...] आईओएस 6.0 और iOS 6.0.1

NSArray *permissions = [[NSArray alloc] initWithObjects: @"email", @"user_birthday", @"user_location", nil]; 

@try { 
    return [FBSession openActiveSessionWithReadPermissions:permissions 
               allowLoginUI:allowLoginUI 
             completionHandler:^(FBSession *session, 
                  FBSessionState state, 
                  NSError *error) { 
              [self sessionStateChanged:session 
                   state:state 
                   error:error]; 
             }]; 
} 
@catch { ... } 

रहे हैं दुर्लभ मामले जब यह विधि NSInvalidArgumentException संदेश Access options are not permitted for this account type. The options argument must be nil. के साथ फेंकता है, तो इसे [ACAccountStore requestAccessToAccountsWithType:options:completion:] से फेंक दिया जाता है।

ACAccountStore की एप्पल के डॉक्स जाँच हो रही है, मुझे लगता है कि विधि के लिए इस टिप्पणी को देख:।

"कुछ खाता प्रकार (जैसे फेसबुक) एक विकल्प शब्दकोश की आवश्यकता होती है, तो विकल्प शब्दकोश प्रदान नहीं की है इस विधि एक NSInvalidArgumentException फेंक होगा ऐसे खाता प्रकारों के लिए। इसके विपरीत, यदि खाता प्रकार को विकल्प शब्दकोश की आवश्यकता नहीं है, तो विकल्प पैरामीटर शून्य होना चाहिए। "

ऐप्पल को फेसबुक के अलावा इसे शून्य होने की आवश्यकता है, लेकिन इस विधि को फेसबुक से बुलाया जाता है, तो शायद यह एक बग है - या तो फेसबुक पर या आईओएस 6.0/.1 पर, लेकिन मुझे वेब पर कुछ भी नहीं मिला इस मुद्दे के बारे में।

कोई विचार?

+0

मैं एक ही पता लगाने के साथ एक crashlog मिल गया है। क्या आपने कभी इसे ठीक किया है? अग्रिम में धन्यवाद! –

+0

नहीं, इस पल के लिए मैं बस अपवाद पकड़ता हूं और इसे अनदेखा करता हूं। – Kof

+0

क्या आपने इस मुद्दे को हल किया था? – vburojevic

उत्तर

4

मुझे इस बग के लिए एक काम मिल गया। ध्यान दें कि बग को यहां भी वर्णित किया गया है: https://developers.facebook.com/bugs/139251032898548

फेसबुक एसडीके खाता प्रकार के वापसी मूल्य के लिए शून्य जांच नहीं करता है टाइप टाइपथैक्टाइटाइडेन्टिफायर। https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBSystemAccountStoreAdapter.m?source=c#L176

समस्या हल करने के लिए देखें, आप फेसबुक lgoin प्रयास करने से पहले निम्नलिखित की जांच कर सकते हैं:

if ([[[ACAccountStore alloc]init] accountTypeWithAccountTypeIdentifier:@"com.apple.facebook"] == nil) { 
    NSLog(@"Cannot proceed, not facebook account type identifier"); 
    return; 
} 
+0

लेकिन अगर फेसबुक के लिए कोई खाता स्टोर चीज नहीं है, तो मैं – user102008

+0

में विफल होने की बजाय अन्य तरीकों (एकल साइन-ऑन इत्यादि) के माध्यम से फेसबुक लॉगिन करना चाहता हूं। मैंने 3.5.2 का उपयोग करके यह अपवाद देखा, जो जांचता है: https: //github.com/facebook/facebook-ios-sdk/blob/sdk-version-3.5.2/src/FBSystemAccountStoreAdapter.m#L174 –