コンテンツにジャンプ

iOSでGoogleログイン

GitHub

このガイドでは、Capgo Social Login for iOSとGoogleログインを設定する方法を学びます。 一般的な設定ガイドをすでに読んだことを前提としています。.

iOSでGoogleログインを設定する方法を学びます。

  1. GoogleコンソールでiOSクライアントIDを作成する

    1. 検索バーをクリックする

      Googleコンソールの検索バー
    2. で検索する credentials 検索結果のオプションをクリックする APIs and Services APIsとServicesが強調表示されている検索結果

      スクリーンショットの2番目のアイテム
    3. クリック create credentials

      Google Consoleの
    4. 選択 OAuth client ID

      OAuthクライアントIDオプションを選択
    5. 選択 Application type Live Update iOS

      iOSオプションが強調表示されているアプリケーションタイプの選択
    6. バンドルIDを探す

      1. Xcodeを開く

      2. ダブルクリック App

        Xcodeプロジェクトナビゲータの
      3. アプリターゲット Targets -> App

        XcodeのターゲットセクションにAppが選択されている
      4. あなたの Bundle Identifier

        Xcodeプロジェクト設定のBundle Identifierフィールド
      5. Googleコンソールに戻り、Bundle IDフィールドにあなたの Bundle IdentifierBundle ID

        GoogleコンソールのiOSクライアント作成フォームのBundle IDフィールドに
    7. オプションで、 App Store ID または Team ID iOSクライアント作成フォームの

    8. create

      iOSクライアント作成フォームの下部にあるCreateボタンをクリック
    9. クリック OK

      クライアント ID の作成確認ダイアログの OK ボタン
    10. 新しく作成した iOS クライアントを開きます

      資格情報リストの新しく作成した iOS クライアント
    11. 以下のデータをコピーしてください

      クライアント ID の詳細を表示し、クライアント ID とその逆のクライアント ID をコピー
  2. アプリの Info.plist を変更する

    1. Xcode を開いてプロジェクト ナビゲーターで Info.plist ファイル

      Xcode プロジェクト ナビゲーターで Info.plist ファイルを見つける
    2. このファイルを右クリックし、ソースとして開く code

      右クリックメニューの Open As Source Code オプション
    3. ファイルの下部に、 Plist タグ </dict> Info.plist ファイルの Closing dict タグ

      クロージング dict タグの直前に、以下のフラグメントを挿入する
    4. クロージング dict タグの直前に、以下のフラグメントを挿入する </dict> タグ

      URLスキームにcodeを挿入したInfo.plist
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. 変更する YOUR_DOT_REVERSED_IOS_CLIENT_ID 前のステップでコピーした値に変更

      URLスキームに実際のクライアントIDを挿入したInfo.plist
    6. ファイルを保存 Command + S

  3. iOS用Googleのソーシャルログインプラグインの設定 AppDelegate.swift

    1. Open the AppDelegate

      XcodeプロジェクトナビゲータでAppDelegate.swiftファイルを開く
    2. Insert import GoogleSignIn AppDelegate.swiftファイルの先頭にGoogleSignIn importを追加する

      Find the
    3. function func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) AppDelegate.swiftファイルの元のopenURL関数を探す

      関数を次のように変更する
    4. Copy to clipboard

      func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
      // Called when the app was launched with a url. Feel free to add additional processing here,
      // but if you want the App API to support tracking app url opens, make sure to keep this call
      var handled: Bool
      handled = GIDSignIn.sharedInstance.handle(url)
      if handled {
      return true
      }
      return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
      }
      Modified application openURL function with GoogleSignIn handling
    5. ファイルを保存してください Command + S

  4. Setup Google login in your JavaScript/TypeScript code

    1. Import SocialLoginCapacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. 初期化メソッドを呼び出してください (これは、1 回だけ呼び出してください)

      基本設定 (オンラインモード - 最もアプリに適した設定)

      // onMounted is Vue specific
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      iOSClientId: '673324426943-redacted.apps.googleusercontent.com',
      mode: 'online' // Default mode
      }
      })
      })

      追加のクライアント ID を使用した高度な設定:

      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: 'YOUR_WEB_CLIENT_ID', // Optional: for web platform support
      iOSClientId: 'YOUR_IOS_CLIENT_ID', // Required: from step 1
      iOSServerClientId: 'YOUR_WEB_CLIENT_ID', // Optional: same as webClientId, needed for some advanced features
      mode: 'online' // 'online' or 'offline'
      }
      })
      })
    3. ログイン機能を実装する。ボタンを作成し、次のcodeをクリック時に実行する

      オンラインモードの場合:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response - contains user data
      console.log(JSON.stringify(res))

      オフラインモードの場合:

      const res = await SocialLogin.login({
      provider: 'google',
      options: {
      forceRefreshToken: true // Recommended for offline mode
      }
      })
      // res contains serverAuthCode, not user data
      // Send serverAuthCode to your backend to get user information
      // Do not call SocialLogin.refresh() in offline mode
      console.log('Server auth code:', res.result.serverAuthCode)
  5. アプリケーションのテスト

    1. アプリをビルドして実行 cap sync

    2. すべてが正しく行われたら、Google ログインフローが正常に動作するはずです

      iOS 上の Google ログインフローを示すデモ、サインインプロセスと成功した認証を示しています

知られている問題

知見された問題

プライバシー画面プラグインの不互換性

プライバシー画面プラグインの不互換性

Google ログイン プラグインは @capacitor/privacy-screenプライバシー画面が表示されます。

対処法: 呼び出し await PrivacyScreen.disable(); コンテキスト: Appflow の比較 / 移行のマーケティング コピー (親キー `appflow_migration_step2`)。ページ/エリア: Appflow の比較 / 移行のマーケティング コピー。役割: ウェブサイトのコピー。見つかった場所: ionic-appflow.astro

import { PrivacyScreen } from '@capacitor/privacy-screen';
import { SocialLogin } from '@capgo/capacitor-social-login';
await PrivacyScreen.disable();
await SocialLogin.login({
provider: 'google',
options: {}
});

iOSでGoogleログインを使用している場合 iOSでGoogleログインを使用している場合 認証とアカウントフローの計画にGoogleログインを使用している場合、 Capacitorプラグインの@capgo/capacitor-social-login Capacitorプラグインの@capgo/capacitor-social-login Capacitorプラグインの@capgo/capacitor-social-login Capacitorプラグインの@capgo/capacitor-passkey Capacitorプラグインの@capgo/capacitor-passkey Capacitorプラグインの@capgo/capacitor-native-biometric Capacitorプラグインの@capgo/capacitor-native-biometric for the implementation detail in @capgo/capacitor-native-biometric, and 認証とアカウントフローの計画にGoogleログインを使用している場合、 Google の 2 要素認証の実装詳細について。