Notas da versão do SDK do Login do Google para iOS e macOS

Não lançado

  • Correção de uma falha quando uma resposta de erro de servidor carrega um valor que não é uma string na chave error. O gerenciador de erros do EMM enviou -hasPrefix: para qualquer valor presente, gerando uma exceção de seletor não reconhecido em um número, matriz ou objeto.
  • Correção de um problema em que um nonce personalizado e o token claims solicitado eram descartados quando um login era continuado após a reinicialização do app Política do dispositivo.
  • Adição de suporte ao Gerenciador de Pacotes do Swift para o AppCheckCore 12.x, permitindo compatibilidade com o Firebase 13. As instalações do CocoaPods continuam restritas ao AppCheckCore 11.x. (#626)
  • Correção de uma preparação do App Check com falha que estava sendo registrada como bem-sucedida, o que fazia com que as chamadas posteriores para -[GIDSignIn configureWithCompletion:] informassem sucesso sem tentar novamente. (#626)
  • Com o AppCheckCore 11.x (incluindo todas as instalações do CocoaPods), um provedor personalizado do App Check que não retorna um token nem um erro agora é tratado como bem-sucedido, em vez de falhar com kGIDAppCheckUnexpectedError. (#626)
  • Correção de uma disputa de dados nos tokens de GIDGoogleUser. As atualizações simultâneas de tokens podem gravar os tokens de acesso, atualização e token de ID de diferentes linhas de execução ao mesmo tempo, e os leitores podem observar um conjunto parcialmente atualizado. Os três tokens agora são publicados juntos como um snapshot.
  • accessToken, refreshToken e idToken de GIDGoogleUser agora são derivados desse snapshot. Assim, os observadores de chave-valor de qualquer um deles são notificados sempre que um deles muda, não apenas quando o valor da propriedade muda.
  • Os observadores de chave-valor dessas propriedades são notificados enquanto GIDGoogleUser mantém o bloqueio interno. Chamar o mesmo usuário do observador é aceitável, mas um observador não pode esperar de forma síncrona (por exemplo, com dispatch_sync) em outra linha de execução que esteja atualizando o mesmo usuário.
  • Correção de caixas de diálogo de correção de EMM que eram suprimidas pelo restante da vida útil do app após um único erro enquanto nenhuma janela de chave estava disponível. A flag pending-dialog agora é apagada em todos os caminhos de saída, e a gravação de limpeza é sincronizada para corresponder à leitura.
  • Correção de uma solicitação de token que falhou com um erro de EMM, às vezes relatado com o erro OAuth subjacente em vez de kGIDSignInErrorCodeEMM quando nenhuma caixa de diálogo de correção pôde ser apresentada.
  • Correção de um erro de EMM que chegava enquanto uma caixa de diálogo de correção já estava sendo mostrada como kGIDSignInErrorCodeUnknown (ou como o erro OAuth subjacente, para uma solicitação de token) em vez de kGIDSignInErrorCodeEMM. Nenhuma segunda caixa de diálogo é mostrada.

10.0.0

  • IMPORTANTE: atualize para o AppAuth 3.0.0 e o GTMAppAuth 6.0.0, que aumentam as metas mínimas de implantação para o iOS 15.0 e o macOS 12.0, ampliam a dependência GTMSessionFetcher para permitir 4.x e 5.x e renomeiam o manifesto do Gerenciador de pacotes do Swift específico da versão para Package@swift-5.7.swift. Os projetos que precisam continuar oferecendo suporte a versões anteriores do SO devem permanecer no GoogleSignIn 9.2.0. (#628).
  • Adicionamos GIDSignIn.wrapperIdentifier para que os SDKs que incorporam o Login do Google possam se identificar nos registros de diagnóstico do Google usando um novo parâmetro gidwrapper. É uma opção de ativação, e o comportamento preexistente não é alterado. (#625)
  • Atualização do ícone do botão de login para o G do Google em gradiente (#633)
  • Fixe os nomes em Swift dos métodos de fábrica GIDClaim com anotações NS_SWIFT_NAME explícitas. Os nomes em Swift importados não são alterados (link em inglês).
  • Usar NSURLComponents para codificar tokens corretamente (#618)
  • Correção de uma falha em additionalTokenRefreshParameters quando emmSupport é nil (#608).
  • Interno
    • Consolidação dos parâmetros de registro do SDK para se preparar para os novos (#616)
    • Correção de swift-button-functional-test (#614).
    • Correção da importação de SignInSample e adição do exemplo à CI (#632)
    • Adição de jobs de pré-lançamento não bloqueantes do Xcode 27 à CI (#629).
    • Aumentamos os destinos de implantação do Podfile de exemplo para o Xcode 27 (#634).
    • Aumentar as dependências do grupo do bundler (#594, #630)

9.2.0

  • Expor a data de validade do token de atualização (#577)
  • Suporte para solicitar a declaração amr (Referências de Métodos de Autenticação) (#600)
  • Remoção de entradas do conjunto de chaves em uma nova instalação (#567).
  • Atualização do mínimo da dependência AppAuth-iOS para 2.1.0 (#603)
  • Correção do processamento de pacotes opcionais para strings localizadas (#373)
  • Incluir todos os cabeçalhos públicos incondicionalmente no cabeçalho abrangente (#595)
  • Mover a importação de GIDSignInButton para fora da compilação condicional (#591)
  • Interno
    • Correção de avisos de descontinuação do Gerenciador de pacotes do Swift (#579)
    • Melhoria do comentário do documento para GIDSignInButtonStyle (#204)
    • Resolvido o aviso de filho não atribuído no catálogo de recursos AppIcon (#348).
    • Refatoração do fluxo de trabalho do GitHub Actions (#580)
    • Fazer upgrade das ações do GitHub para as versões mais recentes para compatibilidade com o Node 24 (#592, #593)

9.1.0

  • Permissão para solicitar claims (atualmente, apenas auth_time) usando Métodos de login (#550, #552, #553, #569)
  • Atualização dos métodos addScopes: em GIDSignIn para incluir o claims solicitado anteriormente (link em inglês)
  • Interno
    • Atribuição ao keychainStore o mais rápido possível no inicializador (#540)
    • Adição de suporte ao Swift 6 (#543, #544, #546)
    • Atualização dos fluxos de trabalho do GitHub Actions (#545, #570)
    • Atualização do app de exemplo DaysUntilBirthday para oferecer suporte à declaração auth_time (#555)
    • Renomeamos tokenClaims como claims em todo o código (#568).

9.0.0

  • Permitir o fornecimento de um nonce personalizado via GSI para o AppAuth (#402, #476)
  • Correção do código do erro inválido em GIDSignIn (#472)
  • Adição de suporte ao GTMAppAuth 5 no macOS (#522).
  • Correção de bugs de migração de dados protegidos (#533)
  • Interno
    • Adição do AppAuthCore como dependência explícita (#470)
    • Atualização do simulador do iPhone de 14 para 15 (#494)
    • Corrigir o teste de integração do botão Swift (#497)
    • Atualização do executor para macos-13 (#498)
    • Atualização de scorecards.yml para usar upload-artifact@v4.6.2 (#516)
    • Atualização das dependências AppAuth e GTMAppAuth (#517, #521)
    • Corrigir testes de integração do Swift para um usuário recorrente (#518)
    • Atualização de .gitignore para incluir .build e Package.resolved (#520)
    • Atualização de GIDSignInTest para configurar e remover corretamente NSUserDefaults (#527)

8.0.0

  • Versão geral que adiciona suporte ao Firebase App Check para estabelecer a integridade do aplicativo ao fazer login com o Google
  • Atualização do suporte mínimo do iOS para o iOS 12 (#445)
  • Interno
    • Atualização da dependência do AppCheckCore para a v11.0 (#454)
    • Adição do retorno instancetype ao assistente de teste (#393)
    • Remoção da importação modular do GTMSessionFetcher (#403).
    • Aumentar o activesupport de 5.2.5 para 5.2.8.1 no grupo do bundler (#429)
    • Remoção do executor macos-11 descontinuado (#447)
    • Atualização do uso da API de arquivamento descontinuada em testes (#449)

7.1.0-fac-beta-1.1.0

  • Versão Beta compatível com tokens do Firebase App Check usados para estabelecer a integridade do aplicativo ao fazer login com o Google
  • Adiciona suporte ao manifesto de privacidade lançado na v7.1.0.
  • Interno

7.1.0

  • Atualização para o Swift 5.0 no pod GoogleSignInSwiftSupport (#317)
  • Atualizações de documentação (#351, #372).
  • Adição do manifesto de privacidade (#382)
  • Interno
    • Correção de um erro de digitação em SFSafariViewController (#291).
    • Correção do uso de OCMock no teste de unidade (#298).
    • Use o novo protocolo delegado do GTMAppAuth 4.0.0 (#299).
    • Verifique se completion não é nulo antes de chamar -[GIDSignIn restorePreviousSignIn:] (#301).
    • Remove o executor macos-11 nos fluxos de trabalho do GitHub (#302)
    • Atualização da referência do nome do botão para que os testes de automação da interface sejam aprovados (#308)

7.1.0-fac-beta-1.0.0

  • Versão Beta compatível com tokens do Firebase App Check usados para estabelecer a integridade do aplicativo ao fazer login com o Google
  • Interno
    • Atualização da versão mínima do iOS do Podfile do SignInSample (#355)
    • Atualização do destino do teste de unidade AppCheckExample para aprovação durante a integração contínua (#356)

7.1.0-fac-eap-1.0.0

  • Versão do Programa de acesso antecipado (EAP, na sigla em inglês) que oferece suporte aos tokens do Firebase App Check usados para estabelecer a integridade do aplicativo ao fazer login com o Google
  • Interno
    • Correção de um erro de digitação em SFSafariViewController (#291).
    • Remove o executor macos-11 nos fluxos de trabalho do GitHub (#302)
    • Atualização da referência do nome do botão para que os testes de automação da interface sejam aprovados (#308)
    • Verifique se completion não é nulo antes de chamar -[GIDSignIn restorePreviousSignIn:] (#301).
    • Use o novo protocolo delegado do GTMAppAuth 4.0.0 (#299).

7.0.0

  • Agora, todas as configurações podem ser fornecidas pelo arquivo Info.plist. (#228)
    • Use as seguintes chaves em pares <key>KEY</key><string>VALUE</string> para configurar o SDK:
      • GIDClientID (obrigatório)
      • GIDServerClientID (opcional)
      • GIDHostedDomain (opcional)
      • GIDOpenIDRealm (opcional)
  • Suporte à simultaneidade do Swift. (#187).
  • Melhorias na superfície da API (#249, #228, #187)
    • GIDSignIn
      • Nova propriedade configuration.
      • Os argumentos Configuration: foram removidos dos métodos signIn:.
      • Remoção de addScopes: e adição a GIDGoogleUser.
      • Os argumentos callback: foram renomeados como completion: para métodos assíncronos que usam blocos.
    • GIDGoogleUser
      • Nova propriedade configuration.
      • Novo método addScopes: movido de GIDSignIn.
      • A propriedade authentication foi removida e substituída por:
        • Nova propriedade accessToken.
        • Nova propriedade refreshToken.
        • Nova propriedade idToken.
        • Nova propriedade fetcherAuthorizer.
        • Novo método refreshTokensIfNeededWithCompletion:.
    • Nova classe GIDToken para representar tokens de acesso, atualização e token de ID em GIDGoogleUser.
    • Nova classe GIDSignInResult para representar o resultado de um fluxo signIn ou addScopes bem-sucedido.
    • As definições de tipo de bloco GIDSignInCallback, GIDDisconnectCallback e GIDAuthenticationAction foram removidas.

6.2.4

  • Atualizamos a dependência GTMSessionFetcher para permitir as versões 2.x. (#207).

6.2.3

  • Correção do carregamento de recursos no GoogleSignInSwift com o use_frameworks! do CocoaPods. (#197).
  • Evitamos erros de build para o GoogleSignInSwift em determinados cenários ao usar o Gerenciador de pacotes do Swift. (#166).

6.2.2

  • Evitamos erros de build para o GoogleSignInSwift ao usar o Gerenciador de pacotes do Swift. (#157).
  • Evite um erro de build no Xcode 12 e versões anteriores. (#158).

6.2.1

  • Use GoogleSignInSwiftSupport como o nome do CocoaPod de suporte do Swift. (#137).

6.2.0

  • Suporte para macOS. (#104)
  • Adicionamos um botão "Fazer login com o Google" do SwiftUI. (#103).
  • Adicionamos a capacidade de solicitar escopos adicionais no momento do login. (#30).
  • Vários problemas foram corrigidos. (#87, #106)

6.1.0

  • Novo app de exemplo em Swift que demonstra o SwiftUI. (#63).
  • Suporte para Mac Catalyst.
  • Melhorias na implementação de addScopes. (#68, #70).

6.0.2

  • Verifique se as importações de módulo podem ser usadas quando criadas como uma biblioteca. (#53).

6.0.1

  • Correção de callbacks aninhados que não eram chamados para os métodos signIn e addScopes. (#29).

6.0.0

  • O Login do Google para iOS agora é de código aberto.
  • Suporte ao Gerenciador de Pacotes do Swift.
  • Suporte para o Simulator em Macs M1.
  • Atualizações da superfície da API
    • GIDSignIn
      • sharedInstance agora é uma propriedade de classe.
      • signIn agora é signInWithConfiguration:presentingViewController:callback: e sempre solicita escopos de perfil básico.
      • addScopes:presentingViewController:callback: é a nova maneira de adicionar escopos além do perfil básico a um usuário conectado.
      • restorePreviousSignIn agora é restorePreviousSignInWithCallback:
      • disconnect agora é disconnectWithCallback:
      • O protocolo GIDSignInDelegate foi removido em favor dos blocos GIDSignInCallback e GIDDisconnectCallback.
      • Todas as propriedades de configuração do fluxo de login foram movidas para GIDConfiguration.
    • A classe GIDConfiguration foi adicionada para representar a configuração necessária para fazer login de um usuário.
    • GIDAuthentication
      • getTokensWithHandler: agora é doWithFreshTokens:
      • O typedef GIDAuthenticationHandler foi renomeado como GIDAuthenticationAction.
      • refreshTokensWithHandler: foi removido. Use doWithFreshTokens:.
    • GIDSignInButton não faz mais chamadas para GIDSignIn internamente e precisa ser conectado a um IBAction ou semelhante para que você possa chamar signInWithConfiguration:presentingViewController:callback: para iniciar um fluxo de login.

5.0.2

  • Correção do código de erro incorreto enviado para signIn:didSignInForUser:withError: quando o usuário cancela a caixa de diálogo de consentimento do iOS durante o fluxo de login.

5.0.1

  • Correção de um problema em que o fluxo de login não podia ser iniciado corretamente no iOS 13.
  • A distribuição ZIP requer o Xcode 11 ou mais recente.

5.0.0

  • Mudanças no GIDSignIn
    • uiDelegate foi substituído por presentingViewController.
    • hasAuthInKeychain foi substituído por hasPreviousSignIn.
    • signInSilently foi substituído por restorePreviousSignIn.
    • O código do erro kGIDSignInErrorCodeNoSignInHandlersInstalled descontinuado foi removido.
  • Mudanças em GIDAuthentication
    • Remoção dos métodos descontinuados getAccessTokenWithHandler: e refreshAccessTokenWithHandler:.
  • Mudanças em GIDGoogleUser
    • A propriedade descontinuada accessibleScopes foi removida. Use grantedScopes.
  • Adiciona dependências em AppAuth e GTMAppAuth.
  • Removeu a dependência do GoogleToolboxForMac.
  • Não é mais possível usar o iOS 7.

4.4.0

  • Remove a dependência do GTM OAuth 2.

4.3.0

  • Compatível com o gerenciamento de mobilidade empresarial do Google.

4.2.0

  • Adiciona grantedScopes a GIDGoogleUser, permitindo a confirmação de quais escopos foram concedidos após um login bem-sucedido.
  • Descontinua accessibleScopes em GIDGoogleUser. Use grantedScopes.
  • Localiza GIDSignInButton para hi (hindi) e fr-CA (francês (Canadá)).
  • Adiciona dependência ao framework LocalAuthentication do sistema.

4.1.2

  • Adição de suporte a pod try para o CocoaPod do GoogleSignIn.

4.1.1

  • Correção de um problema em que o signInWillDispatch:error: do GIDSignInUIDelegate não era chamado no iOS 11. Nem signIn:presentViewController: nem signIn:dismissViewController: são chamados no iOS 11 porque SFAuthenticationSession não é apresentado pelo controlador de visualização do app.

4.1.0

  • Usa SFAuthenticationSession no iOS 11.

4.0.2

  • Não depende mais do GoogleAppUtilities.

4.0.1

  • Alterna para dependências de pod de código aberto.
  • A aparência do botão de login não depende mais dos escopos solicitados.

4.0.0

  • O pod do GoogleSignIn agora tem a forma de um framework estático. Importe com #import <GoogleSignIn/GoogleSignIn.h> em Objective-C.
  • Adiciona suporte a módulos. Também é possível usar @import GoogleSignIn; no Objective-C, se o módulo estiver ativado, e import GoogleSignIn no Swift sem usar um cabeçalho de ponte.
  • Para usuários da distribuição ZIP independente, agora são fornecidos vários frameworks, e todos precisam ser adicionados a um projeto. Essa decomposição permite mais flexibilidade em caso de dependências duplicadas.
  • Remove o método descontinuado checkGoogleSignInAppInstalled de GIDSignIn.
  • Remove as propriedades allowsSignInWithBrowser e allowsSignInWithWebView de GIDSignIn.
  • Não é mais necessário adicionar o ID do pacote como um esquema de URL compatível com o app.

3.0.0

  • Fornece as propriedades givenName e familyName em GIDProfileData.
  • Permite definir a propriedade loginHint em GIDSignIn para preencher previamente o ID ou o endereço de e-mail do usuário no fluxo de login.
  • Removemos a categoria UIViewController(SignIn) e a propriedade delegate de GIDSignInButton.
  • Requer que uiDelegate tenha sido definido corretamente em GIDSignIn e que o framework SafariServices tenha sido vinculado.
  • Remove a dependência do StoreKit.
  • Oferece suporte a bitcode.
  • Requer o Xcode 7.0 ou mais recente devido a incompatibilidades de bitcode com o Xcode 6.

2.4.0

  • Atualiza o botão de login com o novo logotipo do Google.
  • Oferece suporte à restrição de domínio para login.
  • Permite atualizar tokens de ID.

2.3.2

  • Não requer mais o Xcode 7.

2.3.1

  • Correção de uma falha em imageURLWithDimension: de GIDProfileData.

2.3.0

  • Requer o Xcode 7.0 ou mais recente.
  • Usa o SFSafariViewController para fazer login no iOS 9. uiDelegate precisa ser definido para que isso funcione.
  • Otimiza a busca do perfil de usuário.
  • Suporte para GTMFetcherAuthorizationProtocol em GIDAuthentication.

2.2.0

  • Compatível com iOS 9 (Beta). Essa versão do SDK de login não inclui bitcode. Portanto, defina ENABLE_BITCODE como NO no seu projeto se você usa o Xcode 7.
  • Adiciona identificadores descritivos para as restrições de layout automático do GIDSignInButton.
  • signInSilently não exige mais a configuração de uiDelegate.

2.1.0

  • Correção de problemas de layout automático com o GIDSignInButton.
  • Adiciona a API para atualizar o token de acesso em GIDAuthentication.
  • Melhor descrição de exceção para clientID não atribuído em GIDSignIn.
  • Outras correções de bugs menores.

2.0.1

  • Correções de bugs

2.0.0

  • Suporte ao login via UIWebView em vez de alternar o app para um navegador, configurável com a nova propriedade allowsSignInWithWebView.
  • Agora, os apps que desativaram a troca de app para um navegador usando as propriedades allowsSignInWithBrowser e a visualização da Web no app usando allowsSignInWithWebView têm a opção de mostrar uma solicitação instruindo o usuário a fazer o download do app do Google na App Store.
  • Correção do problema de dimensionamento do botão de login quando o layout automático está ativado
  • signInSilently agora chama o delegado com erro quando hasAuthInKeychain é NO, conforme documentado.
  • Outras correções de bugs menores

1.0.0

  • Novo SDK focado em login com API atualizada
  • Botão de login renderizado dinamicamente com branding contextual
  • Suporte ao perfil básico
  • Adição da propriedade allowsSignInWithBrowser