2017-10-14 12 views
0

私は自分のアプリケーションにGoogleログインを統合しました。私はUSBデバッグでテストすると、ユーザーがアプリケーションにアクセスできるので、複数のデバイスで正常に動作するように見えます.Googleのログインは問題ありません。私が署名付きのapkを作成すると、V1とV2の署名で、誰も認証リンクを最初に作成したサーバーで認証することはできません。Google Signedがサイン付きAPKで動作しない

これは、認証のための責任のコードです:

public class MainActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.OnConnectionFailedListener { 

private LinearLayout prof_section; 
private Button SignOut; 
private SignInButton SignIn; 
private TextView Name,Email; 
private ImageView Prof_Picture; 
private Button continueBut; 
String personName; 
private static final int REQ_CODE = 9001; 
String name; 
Intent nameSave; 
private GoogleApiClient mGoogleApiClient; 

public static final String prefsName = "com.personal.mayankthakur.myapplication"; 


private static final String TAG = "MainActivity"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(com.personal.mayankthakur.myapplication.R.layout.activity_main); 

    prof_section = (LinearLayout) findViewById(com.personal.mayankthakur.myapplication.R.id.prof_section); 
    SignOut = (Button) findViewById(com.personal.mayankthakur.myapplication.R.id.logoutBtn); 
    SignIn = (SignInButton) findViewById(com.personal.mayankthakur.myapplication.R.id.gSignIn); 
    Name = (TextView) findViewById(com.personal.mayankthakur.myapplication.R.id.nameSpace); 
    Email = (TextView) findViewById(com.personal.mayankthakur.myapplication.R.id.emailSpace); 
    Prof_Picture = (ImageView) findViewById(com.personal.mayankthakur.myapplication.R.id.profilePicture); 
    continueBut = (Button) findViewById(com.personal.mayankthakur.myapplication.R.id.button2); 
    continueBut.setOnClickListener(this); 
    SignOut.setOnClickListener(this); 
    SignIn.setOnClickListener(this) ; 
    prof_section.setVisibility(View.GONE); 
    continueBut.setVisibility(View.GONE); 

    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .build(); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(this, this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 


} 

@Override 
public void onConnectionFailed (@NonNull ConnectionResult connectionResult){ 

} 
private void signIn() { 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
    startActivityForResult(signInIntent, REQ_CODE); 
} 
private void signOut(){ 

    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(new ResultCallback<Status>() { 
     @Override 
     public void onResult(@NonNull Status status) { 
      updateUI(false); 
     } 
    }); 

} 
private void handleReuslt(GoogleSignInResult result){ 

    if(result.isSuccess()) 
    { 
     GoogleSignInAccount acct = result.getSignInAccount(); 
     personName = acct.getDisplayName(); 

     // This is the shared preference 
     SharedPreferences.Editor prefs = getSharedPreferences(prefsName, MODE_PRIVATE).edit(); 
     //adding a value to the preference 
     prefs.putString("personName", personName); 
     prefs.apply(); 

     String personEmail = acct.getEmail(); 

     // This is the shared preference 
     SharedPreferences.Editor emailPrefs = getSharedPreferences(prefsName, MODE_PRIVATE).edit(); 
     //adding a value to the preference 
     emailPrefs.putString("personEmail", personEmail); 
     emailPrefs.apply(); 

     String imgUrl = acct.getPhotoUrl().toString(); 
     Uri personPhoto = acct.getPhotoUrl(); 
     Name.setText(personName); 
     Email.setText(personEmail); 
     Glide.with(this).load(imgUrl).into(Prof_Picture); 
     updateUI(true); 
    } 
    else 
    { 
     updateUI(false); 
    } 

} 
private void updateUI(boolean isLogin){ 

    if(isLogin) 
    { 
     prof_section.setVisibility(View.VISIBLE); 
     SignIn.setVisibility(View.GONE); 
     continueBut.setVisibility(View.VISIBLE); 

    } 

    else 
    { 
     prof_section.setVisibility(View.GONE); 
     SignIn.setVisibility(View.VISIBLE); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if(requestCode == REQ_CODE) 
    { 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     handleReuslt(result); 
    } 


} 
@Override 
public void onClick (View v) { 


    switch (v.getId()) { 

     case com.personal.mayankthakur.myapplication.R.id.gSignIn: 
      signIn(); 

      break; 

     case com.personal.mayankthakur.myapplication.R.id.logoutBtn: 
      signOut(); 

      break; 
     case com.personal.mayankthakur.myapplication.R.id.button2: 

      nameSave = new Intent(MainActivity.this, Activity2.class); 
      MainActivity.this.startActivity(nameSave); 
    } 


} 
} 

これはプレイをGoogleにアプリを公開しようとしている私の最初の時間であり、そして任意の助けをいただければ幸いです!

+0

コンソールにエラーメッセージが表示されますか? –

+0

デベロッパーコンソールにリリースキーストアの署名を追加しましたか? –

答えて

0

releaseに設定する必要があるため、build variantdebugでしたか?

0

firebase/googleコンソールのリリースキーのSHA-1チェックサムを追加します。

まず以下のコマンドを使用してキーを生成します。

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME 

次にSHA-1チェックサムをコピーしに行く:

アプリのFirebaseコンソール>あなたのプロジェクト]> [設定]> [指紋

を追加します。

次に、チェックサムを保存しておきましょう。

関連する問題