1

유니티 4.3.3f1페이스 북 로그인

SDK 버전 5.0.4

빌드 버전 140220.cc3a9c089a2eb9e


안녕하세요, 저는했습니다 유니티 (Unity) 용 Facebook SDK를 사용하여 지난 4 개월 동안 게임을 개발 해왔고 지난 금요일 이후로 문제가 발생했습니다.

{"is_logged_in":false,"user_id":"","access_token":"","access_token_expires_at":"01/01/0001 00:00:00"} 

그래서, 어떤 이유가 USER_ID를 얻기도 아니에요 : 매번 내가 내 응용 프로그램에서 내 응용 프로그램에 로그인하려고하면 Result.Text 메소드 LoginCallback에서 (FBResult 결과) {} 다음과 같은 문자열을 반환 응용 프로그램에서 사용할 올바른 토큰을 생성 중입니다.

내 패키지 이름, 클래스 이름 및 키 해시가 Unity SDK의 내 Facebook 설정과 Facebook의 내 App Settings간에 일치하는지 확인했습니다.

것은 그 무엇인가를 의미 할 수 여부, 내가 클래스 이름은 이제 유니티에서 내 FacebookSettings에

com.facebook.unity.FBUnityDeepLinkingActivity 

그래서 나는이에 같은 값으로 변경할 것을 알고하지 않는 눈치 내 Facebook에서 앱 설정.

은 내가 재생성 안드로이드 매니페스트 버튼을 누르면이는 문제를 식별하는 데 도움이 경우 내 매니페스트입니다, 감사합니다

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:theme="@android:style/Theme.NoTitleBar" android:versionCode="1" android:versionName="1.0"> 
    <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" /> 
    <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true"> 
    <activity android:name="com.facebook.unity.FBUnityPlayerActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> 
     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> 
    </activity> 
    <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:launchMode="singleTask" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> 
     <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" /> 
    </activity> 
    <activity android:name="com.facebook.LoginActivity" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation"> 
    </activity> 
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ 1422526867979289" /> 
    <activity android:name="com.facebook.unity.FBUnityLoginActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"> 
    </activity> 
    <activity android:name="com.facebook.unity.FBUnityDeepLinkingActivity" android:exported="true"> 
    </activity> 
    </application> 
</manifest> 

어떤 도움을 크게 감상 할 수있다.

추신 : 또 하나의 빠른 질문입니다. 작동하는 목록은 어느 것입니까? 에 위치한 하나

Assets/Android/AndroidManifest.xml 

나에 하나 :

Assets/Plugins/Android/AndroidManifest.xml 

그럼에도 불구하고, 매니페스트 모두 정확히 내가 여기에 게시 된 것과 동일합니다. 감사.

+0

Google SDT를 사용해 주셔서 감사합니다. 로그인하는 동안 필요한 권한 집합은 무엇입니까? "publish_actions"권한 만 필요로하는 버그를 발견했습니다. 또한 다른 플러그인을 사용합니까? 올바른 안드로이드 매니페스트는 Assets/Plugins/Android에서 가져와야합니다. 자산/Android 폴더에있는 다른 항목은 무엇입니까? 안드로이드 매니페스트는 다음과 같아야합니다. http://pastebin.mozilla.org/4704196 따라서 의도 필터를 "com.unity3d.player.UnityPlayerNativeActivity"로 이동하고 com.facebook.unity.FBUnityPlayerActivity를 제거하십시오. – juraj

+0

안녕하세요 @ juraj 방금 질문에 대답, 문제는 ksytore 내에있었습니다. 감사! –

답변

1

동료 개발자가 제안했듯이 실제로 문제는 내가 APK를 플레이 스토어에 업로드 할 수 있도록 Keystore를 추가했을 때 Facebook 로그인이 작동을 멈췄다는 것입니다. Keystore가 추가되었으므로 keytool로 처리하고 Facebook App Acount에 새로 생성 된 Keyhash를 업로드해야했습니다.

나중에 참조 할 때 sdk가 빈 배열 대신 예외 또는 예외를 throw 할 수 있으면 언제든지 문제를 해결하는 것이 훨씬 쉽습니다.

+0

Android 용으로 개발할 때는 logcat을 사용해야합니다. 가장 쉬운 방법은 Eclipse를 설치하는 것입니다. Window-> Show view-> Other Android and Logcat을 선택하십시오. 그런 다음 응용 프로그램 패키지와 태그 "Unity", "FBUnitySDK"및 "fb4a"에 대한 필터를 설정하십시오. 이렇게하면 무슨 일이 일어나는지 실제로 볼 수 있습니다. 귀하의 경우 fb4a 태그 아래에 '잘못된 애플리케이션 {일부 앱 ID}'가 표시됩니다. – juraj

+0

대단히 감사합니다. @juraj, Unity와 작업 할 때 항상 Logcat을 사용하고 항상 "Unity"필터를 사용합니다. 나는 fb4a에 관해 몰랐다. 그래서 나는 그것을 명심해야한다. 감사! –