Saltar al contenido

Google Inicie sesión en iOS

En esta guía, aprenderá cómo configurar el inicio de sesión Google con Capgo el inicio de sesión social para iOS. Supongo que ya ha leído la guía de configuración general.

En esta parte, aprenderá cómo configurar el inicio de sesión Google en iOS.

  1. Cree una ID de cliente iOS en la consola Google

    1. Haga clic en la barra de búsqueda

      Google Barra de búsqueda de la consola
    2. Busque credentials y haga clic en “API y servicios” (número 2 en la captura de pantalla)

      Resultados de búsqueda que muestran la opción de credenciales con API y servicios resaltados
    3. Haga clic en “crear credenciales”.

      Botón Crear credenciales en la consola Google
    4. Seleccione OAuth client ID

      OAuth opción de ID de cliente en el menú de creación de credenciales
    5. Seleccione el Tipo de aplicación para iOS

      Selección del tipo de aplicación con la opción iOS resaltada
    6. Busque el ID del paquete

      1. Abra Xcode

      2. Haga doble clic en App

        Destino de la aplicación en el navegador de proyectos Xcode
      3. Asegúrate de estar en Targets -> App

        Sección de objetivos en Xcode con la aplicación seleccionada
      4. Encuentre su “Identificador de paquete”

        Campo Identificador de paquete en la configuración del proyecto Xcode
      5. Regrese a la consola Google y pegue su “Identificador de paquete” en “ID de paquete”.

        Campo ID de paquete en Google Consola iOS formulario de creación de cliente
    7. Opcionalmente, agregue su App Store ID o Team ID al ID del cliente si ha publicado su aplicación en App Store.

    8. Después de completar todos los detalles, haga clic en create

      Botón Crear en la parte inferior del formulario de creación de cliente iOS
    9. Haga clic en OK

      Botón Aceptar en el cuadro de diálogo de confirmación creado con ID de cliente
    10. Abra el cliente iOS recién creado.

    11. Copia los siguientes datos

      Detalles de ID de cliente que muestran la ID de cliente y la ID de cliente invertida para copiar

      El nr. 1 en esta imagen luego se convertirá en el iOSClientId en la llamada initialize.

      El nr. 2 en esta imagen luego se convertirá en YOUR_DOT_REVERSED_IOS_CLIENT_ID

  2. Modifica el Info.plist de tu aplicación

    1. Abra Xcode y busque el archivo Info.plist

      Archivo info.plist en el navegador de proyectos Xcode
    2. Haga clic derecho en este archivo y ábralo como código fuente.

      Menú contextual que muestra la opción Abrir como código fuente
    3. En la parte inferior de su archivo Plist, verá una etiqueta </dict>

      Cerrar etiqueta dict en el archivo Info.plist
    4. Inserte el siguiente fragmento justo antes de la etiqueta de cierre </dict>

      Info.plist con código de esquemas de URL insertado antes de cerrar la etiqueta dict
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
    5. Cambie el YOUR_DOT_REVERSED_IOS_CLIENT_ID al valor copiado en el paso anterior.

      :::precaución Asegúrese de que este valor COMIENCE con com.googleusercontent.apps :::

    6. Guarde el archivo con Comando + S

  3. Modificar el AppDelegate.swift

    1. Abra AppDelegate

      Archivo AppDelegate.swift en el navegador de proyectos Xcode
    2. Inserte importar GoogleSignIn en la parte superior del archivo.

      AppDelegate.swift con importación GoogleSignIn agregada
    3. Encuentra la función func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:])

      Función openURL de la aplicación original en AppDelegate
    4. Modifique la función para que se vea así.

      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)
      }
      Función openURL de la aplicación modificada con manejo de GoogleSignIn
    5. Guarde el archivo con Comando + S

  4. Configure el inicio de sesión Google con su código JavaScript/TypeScript

    1. Importar SocialLogin y Capacitor

      import { SocialLogin } from '@capgo/capacitor-social-login';
      import { Capacitor } from '@capacitor/core';
    2. Llame al método de inicialización (debe llamarse solo una vez)Basic setup (online mode - recommended for most apps):

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

      Configuración avanzada con ID de cliente adicionales:

      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'
      }
      })
      })

      Requisitos de identificación del cliente:

      • iOSClientId: Obligatorio - Debe terminar con googleusercontent.com (del paso 1 anterior)
      • webClientId: Optional - Only needed if you also support web platform or need advanced features
      • iOSServerClientId: Optional - Should be the same value as webClientId when provided

      For advanced setup with webClientId and iOSServerClientId, see the web setup guide for creating these credentials.

      :::precaución About offline mode: When using mode: 'offline', the login response will not contain user data directly. En su lugar, recibirá un código de autenticación del servidor que deberá intercambiar por información del usuario a través de su servidor backend. See the general setup guide for implementation details. :::

    3. Implemente la función de inicio de sesión. Create a button and run the following code on click

      Para modo en línea:

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

      Para modo fuera de línea:

      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
      console.log('Server auth code:', res.result.serverAuthCode)
  5. Pruebe su aplicación

    1. Cree su aplicación y ejecute cap sync

    2. If you’ve done everything correctly, you should see the Google login flow working properly

      Demostración del flujo de inicio de sesión de Google en iOS que muestra el proceso de inicio de sesión y la autenticación exitosa

Incompatibilidad del complemento de pantalla de privacidad

Section titled “Incompatibilidad del complemento de pantalla de privacidad”

The Google Login plugin is incompatible with @capacitor/privacy-screen. When using both plugins together, the Google login webview will be interrupted by the privacy screen.

Workaround: Call await PrivacyScreen.disable(); before calling the login function:

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