Google Login su iOS
Introduzione
Section titled “Introduzione”In questa guida imparerai come configurare Google Login con Capgo Social Login per iOS. Suppongo che tu abbia già letto la guida di configurazione generale.
Utilizzare Google login su iOS
Section titled “Utilizzare Google login su iOS”In questa parte imparerai come configurare Google login su iOS.
-
Crea un ID client iOS nella console Google
-
Clicca sulla barra di ricerca

-
Cerca
credentialse clicca su quello diAPIs and Services(numero 2 nello screenshot)
-
Clicca su
create credentials
-
Seleziona
OAuth client ID
-
Seleziona il
Application typecomeiOS
-
Trova il bundle ID
-
Apri Xcode
-
Doppio clic su
App
-
Assicurati di essere su
Targets -> App
-
Trova il tuo
Bundle Identifier
-
Torna alla Console Google e incolla il tuo
Bundle IdentifierinBundle ID
-
-
Facoltativamente, aggiungi il tuo
App Store IDoTeam IDnell’ID client se hai pubblicato la tua app su App Store -
Dopo aver compilato tutti i dettagli, clicca su
create
-
Clicca su
OK
-
Apri il client iOS appena creato

-
Copia i seguenti dati

-
-
Modifica il file Info.plist della tua app
-
Apri Xcode e trova il file
Info.plist
-
Clicca con il tasto destro su questo file e aprilo come codice sorgente

-
In fondo al tuo file
Plist, vedrai un tag</dict>
-
Inserisci il seguente frammento appena prima del tag di chiusura
</dict>
<key>CFBundleURLTypes</key><array><dict><key>CFBundleURLSchemes</key><array><string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string></array></dict></array> -
Cambia
YOUR_DOT_REVERSED_IOS_CLIENT_IDcon il valore copiato nel passaggio precedente
-
Salva il file con
Command + S
-
-
Modifica
AppDelegate.swift-
Apri AppDelegate

-
Inserisci
import GoogleSignInall’inizio del file
-
Trova la funzione
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:])
-
Modifica la funzione in modo che appaia così
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 callvar handled: Boolhandled = GIDSignIn.sharedInstance.handle(url)if handled {return true}return ApplicationDelegateProxy.shared.application(app, open: url, options: options)}
-
Salva il file con
Command + S
-
-
Configura Google login nel tuo codice JavaScript/TypeScript
-
Importa
SocialLogineCapacitorimport { SocialLogin } from '@capgo/capacitor-social-login';import { Capacitor } from '@capacitor/core'; -
Chiama il metodo initialize (questo dovrebbe essere chiamato solo una volta)
Configurazione base (modalità online - consigliata per la maggior parte delle app):
// onMounted è specifico di VueonMounted(() => {SocialLogin.initialize({google: {iOSClientId: '673324426943-redacted.apps.googleusercontent.com',mode: 'online' // Modalità predefinita}})})Configurazione avanzata con ID client aggiuntivi:
onMounted(() => {SocialLogin.initialize({google: {webClientId: 'YOUR_WEB_CLIENT_ID', // Opzionale: per il supporto della piattaforma webiOSClientId: 'YOUR_IOS_CLIENT_ID', // Obbligatorio: dal passaggio 1iOSServerClientId: 'YOUR_WEB_CLIENT_ID', // Opzionale: uguale a webClientId, necessario per alcune funzionalità avanzatemode: 'online' // 'online' o 'offline'}})}) -
Implementa la funzione di login. Crea un pulsante ed esegui il seguente codice al clic
Per la modalità online:
const res = await SocialLogin.login({provider: 'google',options: {}})// gestisci la risposta - contiene i dati dell'utenteconsole.log(JSON.stringify(res))Per la modalità offline:
const res = await SocialLogin.login({provider: 'google',options: {forceRefreshToken: true // Consigliato per la modalità offline}})// res contiene serverAuthCode, non i dati dell'utente// Invia serverAuthCode al tuo backend per ottenere le informazioni dell'utenteconsole.log('Server auth code:', res.result.serverAuthCode)
-
-
Testa la tua applicazione
-
Compila la tua app ed esegui
cap sync -
Se hai fatto tutto correttamente, dovresti vedere il flusso di login di Google funzionare correttamente

-
Problemi Noti
Section titled “Problemi Noti”Incompatibilità con il Plugin Privacy Screen
Section titled “Incompatibilità con il Plugin Privacy Screen”Il plugin Google Login è incompatibile con @capacitor/privacy-screen. Quando si utilizzano entrambi i plugin insieme, la webview di login di Google verrà interrotta dalla schermata della privacy.
Soluzione alternativa: Chiama await PrivacyScreen.disable(); prima di chiamare la funzione di login:
import { PrivacyScreen } from '@capacitor/privacy-screen';import { SocialLogin } from '@capgo/capacitor-social-login';
await PrivacyScreen.disable();await SocialLogin.login({ provider: 'google', options: {}});