2012-12-26 82 views
0

我試圖使用Facebook SDK與我的iPhone應用程序,FacebookSDK適用於iOS,Facebook登錄不回我的iOS應用

  1. 我使用的Xcode 4.5.2與SDK V6.0
  2. 我的設備是iPod touch的V6.0.1
  3. 我有一個供應配置文件設定
  4. 我已經訂閱的Facebook開發並註冊了Facebook應用程序inclusing
    • '捆綁ID'
    • '啓用'Facebook登錄'。
    • ...
  5. 我已經在 'URL類型' 設置了Facebook的AppId我的plist文件 - > '項目0' - > 'URL Scemes' - > '項目0'。

當使用物理設備,我的應用程序切換到Facebook登錄頁面,但登錄後,它不回去我的應用程序!
令人驚訝的是,使用模擬器時一切正常,我的應用程序從Facebook登錄頁面來回移動。

我會做什麼錯?爲什麼在物理設備上登錄後無法返回到我的應用程序,而使用模擬器時我可以?這可能與配置文件有某種關係?

任何幫助將不勝感激。

回答

1

在伯爵年,我得到了同樣的問題,我正在測試HACKBOOK的例子和你的問題一樣。我可以在模擬器中很好地運行,但是當我在設備上測試時,我得到了同樣的問題,然後我只是放了那個波紋管代碼並且工作得很好。

簡單,你只需要在您的應用程序委託添加這個方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
    return [self.facebook handleOpenURL:url]; 
} 

這種方法有用與fbApp或Safari登錄。從Facebook登錄頁面

+1

我在我的應用程序IMO中有這個部分,如果省略了這個部分,模擬器應用程序不會從登錄頁面切換回來,問題是,在模擬器時,應用程序從safari登錄切換回來頁面,並且在物理設備上執行時,它不會! – NadavRub

0

轉到重定向到我們的應用程序,以facebook.m在SDK類找到這個方法:

- (void)authorize:(NSArray *)permissions 
     delegate:(id<FBSessionDelegate>)delegate 

然後更換你的最後一行是:[self authorizeWithFBAppAuth:YES safariAuth:YES];

這條線:[self authorizeWithFBAppAuth:YES safariAuth:NO; &檢查。

+0

我假設你建議我修改Facebook的SDK代碼(取自github),是不是有一個更優雅的解決方案? – NadavRub

+0

這適用於舊的SDK,但不再需要。 – MrJre

0

問題在於基類實現了'applicationDidBecomeActive'和'applicationWillTerminate'(其中'[FBSession.activeSession handleDidBecomeActive]'和'[self.session close]'被相應地調用),而繼承類實現相同方法不調用基類[超]類實現。

相關問題