簡體   English   中英

登錄Facebook時Unity iOS游戲在后台被殺死

[英]Unity ios game get killed in background when login into Facebook

在IOS7,iPhone-4s上將游戲與最新版本的Facebook Unity SDK集成時遇到了問題。

每次游戲請求Facebook登錄操作時,游戲都會變為非活動狀態並變成后台,並出現Facebook登錄頁面,然后IOS會殺死我的游戲,即使該游戲使用的內存也只有90M左右。 登錄完成后,IOS重新啟動了游戲,這時Facebook SDK找不到執行登錄操作的先前游戲進程,因此無法將登錄結果傳遞到新的游戲實例中。

因此,有兩個問題:

1)有什么方法可以使游戲進程在后台運行嗎? 我不知道為什么90M的內存使用量足夠大,IOS想要殺死我的進程。

2)有什么方法可以讓新游戲進程獲得上一個游戲進程執行的登錄結果?

3)在執行登錄操作而不是退出游戲時,是否可以統一打開Facebook的嵌入式webView登錄對話框?

謝謝。

------------更新----------

找到第三個問題的解決方案:

1)找到Facebook / Editor / iOS / FbUnityInterface.mm

2)查找方法-(void)login:(const char *)scope {...}

3)變更

openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView

openWithBehavior:FBSessionLoginBehaviorForcingWebView

4)現在,每次您請求登錄時,都會彈出一個嵌入的Web視圖對話框,而不是從當前游戲跳到Facebook登錄對話框。

1)首先,請確保您尚未選中“ PlayerSettings | 其他設置| 配置| 在掛起時退出”選項,該選項會在您退出應用程序時將其殺死。

iPhone4S上的90MB可能很多,設備本身只有512 MB的RAM內存,系統占用了很多內存。 如果您打開了許多應用程序,那么您的應用程序,然后是當今不輕量的Facebook應用程序,則可能會殺死最大的活動進程(您的游戲)。

2)是的。 Facebook Unity3d插件具有一種用於檢查已記錄狀態的方法,該方法在成功登錄后應返回true(即使該應用被終止)。

if( FB.IsLoggedIn )
{
    // your code here
}

3)對於當前版本的Unity3D Facebook插件,沒有簡單的方法可以做到這一點。

嘗試在Xcode中進行調試,以查看在后台終止應用程序時顯示的內容。 它應該給一個堆棧跟蹤,看看會發生什么。 對於iPhone4S而言,90MB並不是問題,因此可以排除內存不足的崩潰問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM