Nesta seção, você encontrará todas as informações necessárias pra implementar o SDK iOS da plataforma Unico IDCloud
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos iOS para a captura do documento
Este guia foi elaborado para ajudá-lo a implementar o SDK iOS de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização iOS.
Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.
A SDK não realiza nenhum tipo de validação do que está sendo capturado.
Neste modo de câmera é possivel capturar os documentos:
RG: Captura do RG (separado em frente e verso);
CNH: Captura da CNH aberta;
CNH frente: Captura da frente da CNH;
CNH verso: Captura do verso da CNH;
CPF: Captura do documento de CPF;
Sem silhueta: Captura documento genérico.
Para iniciar com SDK iOS da plataforma Unico IDCloud, importe o SDK e implemente a interface AcessoBioManagerDelegate
dentro da ViewController que deseja utilizar.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é intanciar o builder informando o contexto em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:
Note que, conforme o exemplo anterior, o trabalho de implementação da interface AcessoBioManagerDelegate
é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método é invocado quando qualquer erro de implementação ocorrer ao utilizar algum dos métodos, como por exemplo, ao informar um tipo de documento incorreto para a funcionalidade de captura de documentos.
Ao ser invocado, o método recebe um parâmetro do tipo ErrorBio
que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio
no artigo de tratamento de erros deste SDK.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O método de abertura da câmera (que é chamado no próximo passo) precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da configuração de delegates que são chamados em situações de sucesso ou erro.
Através da configuração dos delegates, você pode especificar o que acontece em seu App em situações de erro (método onErrorDocument
) ou sucesso (método onSuccessDocument
) na captura de imagens.
Para a configuração dos delegates, você deve implementar as interfaces DocumentCameraDelegate
e AcessoBioDocumentDelegate
:
onSucessDocument
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera
que é utilizado posteriormente na chamada das APIs REST.
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
Tanto o atributo encrypted
quanto o atributo base64
podem ser enviados na chamada das APIs REST do by Client.
Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,
) para que funcione. Se quiser saber mais, leia o artigo How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
onErrorDocument
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio
.
Saiba mais sobre os tipos de ErrorBio
na seção de tratamento de erros do SDK.
Para abrir da câmera, é necessário prepará-la utilizando o método prepareDocumentCamera
. Este método recebe como parâmetro a implementação da classe DocumentCameraDelegate
e o JSON com as credenciais, gerado na etapa acima.
Quando a câmera estiver preparada, o evento onCameraReadyDocument
é disparado, que recebe como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate
.
Você deve sobrescrever este método, efetuando a abertura da câmera com o objeto recebido através do método openDocument()
, recebendo os parâmetros tipo de documento a ser capturado, sendo eles:
Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentEnums.none
, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.
Os delegates implementados acima (aqui descritos como Self):
O tipo ErrorPrepare
é uma extensão de ErrorBio
contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio
na seção de tratamento de erros do SDK.
Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailedDocument
é disparado. Você deve implementar este método aplicando as regras de negócio de seu App.
Em caso de sucesso, o evento onSuccessDocument
é disparado, conforme explicado na seção acima.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o base64
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção CreateProcess do by Client.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Parâmetro | Descrição |
---|---|
DocumentEnums.CPF
Frame para captura da frente do CPF
DocumentEnums.CNH
Frame para captura da CNH aberta
DocumentEnums.cnhFrente
Frame para captura da frente da CNH
DocumentEnums.cnhVerso
Frame para captura do verso da CNH
DocumentEnums.RG
Frame para captura do RG aberto
DocumentEnums.rgFrente
Frame para captura da frente do RG
DocumentEnums.rgVerso
Frame para captura do verso do RG
DocumentEnums.none
Frame para captura de qualquer outro documento
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos iOS
Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos iOS para a captura da selfie
Este guia foi elaborado para ajudá-lo a implementar o SDK iOS de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção Personalização iOS.
Para iniciar com SDK iOS do Unico Check, importe o SDK e implemente a interface AcessoBioManagerDelegate
dentro da ViewController que deseja utilizar.
A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é instanciar o builder informando o contexto e ambiente em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:
Configure o ambiente que será utilizado na execução da SDK. Utilize o enumerado Environment
que contém os seguintes enumerados:
PROD
: para ambiente de Produção;
UAT
: para ambiente de Homologação.
Veja como implementar no exemplo abaixo:
Note que, conforme o exemplo anterior, o trabalho de implementação da interface AcessoBioManagerDelegate
é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.
Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método é invocado quando qualquer erro de implementação ocorrer ao utilizar algum dos métodos, como por exemplo, ao informar um tipo de documento incorreto para a funcionalidade de captura de documentos.
Ao ser invocado, o método receberá um parâmetro do tipo ErrorBio
que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio
no artigo de tratamento de erros deste SDK.
onUserClosedCameraManually()
Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".
onSystemClosedCameraTimeoutSession()
Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).
Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).
O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).
Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.
O SDK tem configurado e habilitado por padrão o enquadramento inteligente e a captura automática. Em função disso, deve-se configurar o modo de câmera no seu builder da seguinte forma:
Os valores false/true dos métodos acima não alteram a experiência de captura, servem apenas para a lógica interna do funcionamento do SDK.
O método de abertura da câmera precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da configuração de delegates que são chamados em situações de sucesso ou erro.
Através da configuração dos delegates, você pode especificar o que acontece em seu App em situações de erro (método onErrorSelfie
) ou sucesso (método onSuccessSelfie
) na captura de imagens.
Para a configuração dos delegates, você deve implementar as interfaces SelfieCameraDelegate
e AcessoBioSelfieDelegate
:
onSuccessSelfie
Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo SelfieResult
que é utilizado posteriormente na chamada das APIs REST.
O objeto ResultCamera
retorna 2 atributos: base64
e encrypted
:
O atributo base64
pode ser utilizado se quiser exibir uma prévia da imagem em seu app;
O atributo encrypted
deve ser enviado na chamada das APIs REST do by Client.
O atributo encrypted
é destinado estritamente ao envio da imagem através das APIs do by Client. Não se deve abrir e serializar esse atributo, pois suas características podem ser alteradas sem aviso prévio. Seu uso deve ser exclusivo nas interações com as APIs para garantir a integridade e segurança dos dados. A Unico não se responsabiliza por quaisquer danos decorrentes dessa prática, uma vez que as modificações podem ocorrer de maneira imprevista.
Os arquivos base64/encrypted
podem sofrer variações de tamanho de acordo com diversas variáveis, dentre elas, a qualidade dos aparelhos e das fotos geradas pelos mesmos e regras de negócio da Unico. Para não encontrar problemas em sua aplicação, não limite em sua lógica de programação ou sua infraestrutura o tamanho da string gerada pela SDK para os arquivos.
Caso queira converter o base64 para bitmap, a maneira padrão não funciona para o iOS. É necessário realizar o split a partir da vírgula(,
) para que funcione. Caso queira saber mais, leia o seguinte artigo: How to convert a Base64 string into a Bitmap image to show it in a ImageView?.
onErrorSelfie
Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio
:
Saiba mais sobre os tipos de ErrorBio
na seção de tratamento de erros do SDK.
Caso não seja configurado, a SDK usa o ambiente configurado em através do arquivo de configuração (getHostKey). Caso getHostKey não esteja sendo usado, um erro é retornado.
É possível configurar o ambiente que será utilizado na execução da SDK. Utilize o enumerado EnvironmentEnum
que contém os seguintes enumerados:
EnvironmentEnum.PROD
: para ambiente de Produção
EnvironmentEnum.UAT
: para ambiente de Homologação
Veja como implementar no exemplo abaixo:
Para seguir com a abertura da câmera, primeiro deve-se prepará-la utilizando o método prepareSelfieCamera
. Este método recebe como parâmetro a implementação da classe SelfieCameraDelegate
e o JSON com as credenciais, gerado na etapa acima.
Quando a câmera estiver preparada, o evento onCameraReady
é disparado e recebe como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate
.
Você deve sobrescrever este método, efetuando a abertura da câmera com o objeto recebido através do método open()
:
O tipo ErrorPrepare
é uma extensão de ErrorBio
contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio
na seção de tratamento de erros do SDK.
Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailed
é disparado. Você devem implementar este método aplicando as regras de negócio de seu App.
A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o encrypted
gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção CreateProcess do by Client.
Por motivos de segurança, o intervalo entre a geração do encrypted
e o envio via um dos fluxos disponíveis deve ser de até no máximo 10 minutos. Envios feitos além deste período serão rejeitados automaticamente pela API.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
O material de ofuscação tem por motivação servir de auxilio para o desenvolvedor passar pelos problemas de ofuscação em seu aplicativo.
O ofuscador do cliente pode afetar o funcionamento do SDK, é necessário que o mesmo não ofusque o código do SDK.
A Unico se isenta da responsabilidade em relação à conflitos de ofuscação com a SDK.
O ofuscamento é um processo de transformar o bytecode em uma forma menos legível por humanos, dificultando assim a engenharia reversa.
Esse processo consiste em remover informações relacionadas a depuração como tabelas de variáveis, número de linhas e renomear os pacotes, classes e métodos.
Ao embarcar a SDK Adroid na aplicação podem ocorrer falhas.
Quando o ofuscamento for realizado pela ferramenta iXGuard, sugerimos utilizar a versão 4.11.0 ou superior.
2.4.0
A responsabilidade do controle do fluxo é delegada para quem chama a SDK. Sendo assim, ao aparecer alguma forma de sombra ou a tela não fechar após a conclusão com sucesso da captura, a sugestão é que seja implementada uma forma de liberação dessa tela. Essa liberação pode variar de acordo com o empilhamento de navegação implementado. Para essa implementação, adicione o método condizente a liberação preferencialmente dentro do método de delegate onSuccessSelfie
. A seguir, alguns exemplos de liberação que podem ser usados:
bitcode
na distribuição de aplicativos usando Xcode 16Após o lançamento da versão oficial do Xcode 16 no dia 17 de setempro de 2024 e com a sua utilização para distribuição de aplicativos na AppStore, verificamos um bloqueio ao utilizar a SDK iOS sinalizando o uso de bitcode
em duas dependências internas ao utilizar o Cocoapods
como gerenciador de dependencias internas, são elas o DeviceProfiling
e UnicoSdkLogger
. A fim de não bloquear novos lançamentos é possível aplicar o seguinte passo-a-passo até a sua definitiva correção em uma release futura da SDK iOS:
Abrir arquivo Podfile
;
Inserir as linhas a seguir após comando post_install do |installer|
e antes do ultimo end
:
2.1. Caso já haja algum código, insira antes do trecho existente;
2.2. Caso já faça a remoção do bitcode
manualmente, adicionar os caminhos explicitamente citados em framework_paths
;
Caso não haja o comando post_install do |installer|
no arquivo Podfile
, inserir-lo confrme a seguir antes do último end
:
Fonte: Bitrise, Xcode 16 release notes, Stackoverflow.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as atualizações do SDK iOS
Mantenha seu SDK iOS sempre atualizado com a última versão disponível.
O versionamento semântico é utilizado para numerar as versões. Para mais informações, consulte o artigo Visão Geral.
Atualização do SDK e server de Liveness com interação.
A partir do Xcode 15, a Apple abandonou o suporte para iOS 11. A Unico abandonará o suporte para iOS 11 no Unico Check iOS SDK em uma versão futura.
Atualização do SDK e server de Liveness com interação;
Remoção de bitcode
que bloqueia envios para AppStore usando Xcode 16 e CocoaPods.
A partir do Xcode 15, a Apple abandonou o suporte para iOS 11. A Unico abandonará o suporte para iOS 11 no Unico Check iOS SDK em uma versão futura.
Atualizações:
Atualização do SDK e server de Liveness com interação.
Atualização do SDK e server de Liveness com interação;
Correção que causava aumento no tempo de inicialização das aplicações.
A partir de agora, é possível definir o ambiente da SDK pela própria API pública no método setEnvironment()
. Em casos de dúvidas, contacte o seu CSM;
Correção de localização (setLocale) na captura com Liveness interativo.
Identificamos um aumento no tempo de inicialização das aplicações que utilizem essa versão, o que pode ter um impacto mais significativo em dispositivos mais antigos. Estamos empenhados em resolver essa questão com a maior rapidez possível.
Melhorias internas de produto. Essas melhorias não afetam diretamente a experiência do usuário final, mantendo a interface e funcionalidades externas inalteradas;
Melhoria no foco da câmera de documentos para dispositivos iPhone Pro Max.
Atualização do SDK e server de Liveness com interação.
Melhoria no foco da câmera de documentos para dispositivos iPhone Pro Max.
Correção de bug que quebrava a SDK ao iniciar em dispositivos usando iOS 12.
Atualização Crítica
Atualização do SDK e server de Liveness com interação.
Atualização do SDK e server de Liveness com interação.
Correção de bug que fazia SDK ficar congelado na tela de loading em alguns casos específicos;
Melhorias nos algoritmos de comunicação entre o clientside e serverside unico.
Correção de crash "[USLErrorSDK ????]: unrecognized selector sent to instance".
Atualização Crítica
Atualização do SDK e server de Liveness com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Atualização Crítica
Atualização do SDK e server de Liveness com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Remoção de dependência que poderia causar a mensagem ITMS-91065: Missing signature
ao enviar para o Testflight e AppStore.
Ajustes na distribuição de um módulo interno que causava o erro No architectures in the binary
ao enviar para o Testflight e AppStore.
Ajustes nos manifestos de privacidade visando corrigir problemas de upload p/ AppStore.
Melhoria no foco da câmera de documentos para dispositivos iPhone 12 ou mais recentes;
Na SDK e server do Smartlive com interação;
Câmera de documentos com um crash intermitente durante sua abertura.
Manifesto de Privacidade: erro listado ao gerar o Relatório de Privacidade pelo Xcode.
Manifesto de privacidade;
SDK de Smartlive com interação;
Suporte ao Xcode 15.
Novas funcionalidades que melhoram a experiência de captura no Liveness Interativo.
Problema corrigido: uma implementação interna que ocasionava um crash ao final do fluxo quando a aplicação é gerada usando as seguintes configurações: macOS 14+(Sonoma) com Chip M1/M2 e Xcode 15+.
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa.
Revertido: Problema corrigido: uma implementação interna que ocasionava um crash ao final do fluxo quando a aplicação é gerada usando as seguintes configurações: macOS 14+(Sonoma) com Chip M1/M2 e Xcode 15+.
Corrigido: Invalid Bundle. The bundle UnicoSdkLogger.framework does not support the minimum OS Version specified in the Info.plist.
Problema corrigido: uma implementação interna que ocasionava um crash ao final do fluxo quando a aplicação é gerada usando as seguintes configurações: macOS 14+(Sonoma) com Chip M1/M2 e Xcode 15+.
É necessário ter a versão mínima do iOS 11 no projeto. Caso a versão informada em seu info.plist esteja abaixo da versão 11, você pode ter problemas de incompatibilidade.
A partir do Xcode 15, a Apple abandonou o suporte para iOS 11. A Unico abandonará o suporte para iOS 11 no iOS SDK em uma versão futura.
Atualização Crítica
Nova funcionalidade de captura para garantir segurança eficaz;
Adição de novos tratamentos de erros do Liveness Ativo.
Erro 73720
caso ocorra falha no processamento de liveness;
Erro 73721
caso ocorra o limite de tentativas de captura;
Erro 73722
caso ocorra o limite de tempo de captura;
Erro 73730
um erro interno de licença;
Erro 73731
um erro interno de licença expirada;
Visualize a lista completa de todos os erros em lista de códigos de erro;
Atualização do SDK e server do Smartlive com interação;
Melhorias nas verificações de injeção de vídeo recentemente adicionadas no lado do dispositivo e no lado do servidor para mitigar ameaças de IA generativa;
Habilitamos a customização das cores do botão de cancelar e barra de progresso através dos métodos opcionais getProgressBarColor() e getCancelButtonIconColor(); ma
Habilitamos a customização dos textos da UI do liveness interativo via configuração remota; m
Habilitamos a customização do logo no rodapé da tela para Camera Interativa (Facetec);.
Remoção do Bitcode das distribuições binárias do unicocheck-ios. A partir do Xcode 14, o bitcode não é mais necessário para aplicativos e a App Store não aceita mais envios com bitcode. Xcode 14 Release Notes
Melhorias internas no produto, sem impacto externo.
Atualização do SDK e server do Smartlive com interação;
Melhorias internas no produto, sem impacto externo.
Melhoria nos logs internos do SDK;
Melhorias internas no produto, sem impacto externo.
Definição automática de ambientes de produção e homologação no SDK.
Problema corrigido: Foi abordado um vazamento de memória e crashes ao alternar entre os modos background e ativo, especialmente ao manter a câmera ativa. Agora, ao entrar em modo background, a câmera será encerrada automaticamente para otimizar o consumo de bateria e memória do dispositivo, reduzindo significativamente o risco de vazamentos de memória e crashes.
Atualização do SDK e server do Smartlive com interação.
Melhorias internas no produto, sem impacto externo.
Disponibilizar o novo fluxo de captura e retentativas quando usado o Liveness com Interação (entrar em contato com a único caso queira habilitar essa nova funcionalidade);
Lançar erro 73800
caso haja falha na captura usando o fluxo de retentativa;
Lançar erro 73100
caso haja falha de conexão com internet durante uma requisição.
Removido o timeout do fluxo de captura usando Liveness com Interação.
Otimização do consumo de memória pela SDK, resolvendo problemas em instâncias que eram afetadas em capturas de longa duração.
Correção nas cores no modo alta iluminação na câmera Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Aumento do tempo padrão da sessão da câmera Smartlive com interação para 60s.
Melhorias internas no produto, sem impacto externo.
Atualização do SDK client e server do Smartlive com interação;
Remoção da tela de sucesso após a captura na câmera Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Hotfix: Correção do timeout da câmera Smartlive com interação e de documentos.
Melhorias internas no produto, sem impacto externo.
Atualização do SDK client e server do Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação.
Atualização do SDK client e server do Smartlive com interação;
hotfix: Correção da abertura da câmera de documentos quando NSLocationWhenInUseUsageDescription não é implementado.
Data de lançamento: 23/02/2023
Correções de bugs:
hotfix: Correção do pedido de geolocalização sobre a câmera Smartlive podendo eventualmente cancelar a captura;
hotfix: Reset de brilho ao estado original após da captura;
Data de lançamento: 03/02/2023
Atualizações:
Atualização do SDK e server do Smartlive com interação;
Correções de bugs:
hotfix: Correção do frame de captura de documentos em iPhones com telas menores do que 4.7 polegadas;
hotfix: Correção na análise de face em iPhones modelo Pro Max;
Data de lançamento: 12/12/2022
Atualizações:
Atualização do SDK e server do Smartlive com interação;
Melhoria de segurança no changelog.
Data de lançamento: 22/11/2022
Atualizações:
Atualização do SDK e server do Smartlive com interação;
Coleta de dados de uso, geolocalização e dispositivo (os dados coletados são usados para garantir a segurança do processo e melhorar a experiência do usuário).
Feat: Automação da publicação no CocoaPods.
Atualização da versão do Smartlive com interação;
Melhoria na tratativa de erro ao identificar fontes maliciosas;
hotfix: Abertura de câmera em celulares com versão do iOS abaixo da 13.
Ajuste na resolução das imagens;
Habilitada a opção Build Libraries for Distribution. Isso ajuda o Xcode a evitar o travamento de versão, para que os módulos da unico possam ser usados quando versões mais recentes do Xcode ou do compilador Swift forem usadas e lançadas a loja.
Hot fix: Fechamento automático da câmera quando o usuário coloca a aplicação em background;
Hot fix: Limpezas de warnings na base de código.
Hot fix: Ajustes para manter compatibilidade com Xcode 13.
Hot fix: JWT encode nos modos de liveness ativo.
Hot fix: ajuste no callback do fechamento manual do frame de captura com interação.
Melhoria da resolução da imagem gerada pelo Smartlive com interação para celulares de qualidade média/alta.
Atualização da versão da SDK do Smartlive;
Possibilidade de executar os métodos prepareSelfieCamera
e prepareDocumentCamera
sem o arquivo json
, utilizando uma classe do tipo AcessoBioConfigDataSource
.
Ajuste no tema padrão para o modo de baixa luminosidade do frame com interação;
Ajuste na customização para o botão de fechar do frame com interação.
Feature flag para poder selecionar a exibição ou não do logo da unico.
Correções nas configurações que estavam impedindo o upload do archive/.ipa para a loja Apple.
Suporte do gerenciador de pacotes Swift Package Manager (SPM);
Adição de dois novos frames de documentos: CNH frente e CNH verso.
Correção na customização da funcionalidade de Prova de Vida. As cores não estavam sendo aplicadas ao modo de captura como deveriam;
Correção nos callbacks de erro que não estavam sendo invocados em casos de falhas em requisições REST.
Suporte para versões anteriores do Swift (versão mínima: swift 4.2), desde que sigam os pré-requisitos quanto a versão mínima do Xcode (13 ou superior);
Correção no valor da propriedade encrypted no retorno do objeto (SelfieResult / DocumentResult);
Correção na abertura da câmera quando o objeto de tema possuía qualquer propriedade de cor como nula;
Correção no botão de fechar das câmeras: normal, inteligente e documentos.
Adicionado o frame de CPF;
Correção na implementação do frame de RG.
Correção na implementacão das customizacões.
Mudança na estrutura de classes;
Refatoração de funções públicas, permitindo o retorno assync dentro da própria função;
Refatoração nos métodos disableAutoCapture e disableSmartFrame;
Correção de bug de enquadramento de face;
Correção de bug de travamento de tela após a captura.
O SDK está 16% mais leve com a remoção de várias intra-dependências e remoções de garbage-code;
O SDK está mais seguro com novos métodos de criptografia em real-time;
O SDK está mais rápido e preciso na detecção de faces com melhorias dos modelos de IA para o câmera inteligente;
Agora é possível configurar o tempo máximo de sessão do seu usuário através do método: [acessoBioManager setTimeoutSession:], obtendo o retorno/callback quando ocorrer através do método: - (void)systemClosedCameraTimeoutSession;
Agora é possível configurar o tempo máximo de inferência e detecção da face do seu usuário através do método: [acessoBioManager setTimeoutToFaceInference:], obtendo o retorno/callback quando ocorrer através do método: - (void)systemClosedCameraTimeoutFaceInference;
Entre outras limpezas realizadas frequentemente.
O SDK está 16% mais leve com a remoção de várias intra-dependências e remoções de garbage-code;
O SDK está mais seguro com novos métodos de criptografia em real-time;
O SDK está mais rápido com os novos modelos de IA para o câmera inteligente;
Remoção de todos os métodos que permitiam acesso ao Liveness com interação;
Entre outras limpezas realizadas frequentemente.
Esta versão possui correções e melhorias importantes em relação a versão anterior (1.2.2);
Correções nas validações que envolvem iPhone 6 e iPhone 5;
Entre outras limpezas realizadas frequentemente.
Agora é possível customizar todos os elementos visuais utilizando também cores no formato hexadecimal. Lembrando que os formatos padrões dos SO's continuam ativos, como UIColor para iOS e Colors para Android;
Adicão de um novo método de retorno para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Correção de bugs em toda classe de documentos que impedia as requisições para o servidor de forma adequada;
Entre outras limpezas realizadas frequentemente.
Adição de um novo método de callback (retorno) para notificar a sua classe implementadora no momento em que o usuário fechar a câmera manualmente;
Correção de bugs em toda classe de documentos que impedia as requisições para o servidor de forma adequada;
Entre outras limpezas realizadas frequentemente.
Atualizações:
Normalização dos cálculos de pontos biométricos em dispositivos com tela em retina, o qual utilizam escala em @3x;
Automatização da operação de adicionar manualmente ao target o arquivo CenterModelCrop.mlmodel. A centralização ficou mais simples e rápida, diminuindo a fricção do usuário no momento de enquadrar o rosto;
Entre outras limpezas realizadas frequentemente.
A partir dessa versão (1.2.0), o SDK do Unico Check não possuirá mais intra-dependências dentro do projeto. Tais quais incluíam FirebaseMLVision, AFNetworking, MBProgressHUD entre outras. O time trouxe todas as funcionalidades e vantagens que tais dependências traziam para o iOS core nativo, simplificando e reduzindo em mais de 75% o tamanho de biblioteca em relação a versão anterior.
Bug fixado a respeito da versão da biblioteca AFNetworking, a qual estava impedindo o upload para a Apple Store pelo uso de WebViews depreciadas na Guideline de 2020.
Adição do botão de fechar no fluxo de captura de documentos. Permitindo que o usuário volte a tela anterior, caso queira;
Correção de um bug que impedia a implementação da captura de documentos no modo DocumentNone;
No fluxo de captura de documentos, correção de um bug que impedia a alteração da label de instrução de acordo com o documento selecionado.
Agora é possível customizar a imagem do ícone de popup de reset de sessão dentro do fluxo do Liveness com interação.
Correção de bug que ocasionava conflitos entre códigos em swift desenvolvidos em nossa biblioteca e códigos em swift desenvolvidos no projeto do cliente. Estes conflitos, não permitiam o upload da aplicação para a Apple Store.
O projeto acessobio-ios era um repositório público distribuído pelo Cocoapods. Devido as melhorias significativas e mudanças que foram realizadas foi criado um novo repositório que tem o intuito de proteger o código em relação aos dados sensíveis. Portanto, o repositório acessobio-ios não está mais disponível;
O novo repositório não afeta na implementação.
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para a customização do SDK da plataforma Unico IDCloud em seus aplicativos iOS
O SDK iOS permite que algumas personalizações sejam feitas. Abaixo veja todas as personalizações possíveis para este SDK.
É possível configurar a experiência das mensagens informativas dos frames de captura alterando seu idioma. Utilize o enumerado LocaleTypes
que contém os seguintes valores:
LocaleTypes.PT_BR
: para Português(Brasil);
LocaleTypes.ES_MX
: para Espanhol(México);
LocaleTypes.ES_ES
: para Espanhol(Espanha);
LocaleTypes.EN_US
: para Inglês(EUA).
Veja como implementar no exemplo abaixo:
Pode ser necessário uma ativação remota para ser utilizado, caso deseje usar, sinalize seu gerente de projetos ou o suporte da Unico.
Caso não seja configurado, por padrão o SDK utiliza o Português como idioma principal.
Esta é uma etapa opcional, porém muito recomendada para que o processo de captura tenha a identidade visual da sua empresa.
É possível customizar alguns objetos do frame de acordo com o modo de câmera utilizado, através do método setTheme()
.
Os tipos suportados para representação de cor são Color Resource ou String contendo o código hexadecimal da cor. Ex: R.color.red ou #FF0000.
Todos os métodos estão disponíveis abaixo:
A seguir alguns exemplos de como você pode utilizar os métodos acima em seu projeto:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para o tratamento dos erros do SDK da plataforma Unico IDCloud em seus aplicativos iOS
ErrorBio
Este objeto é retornado sempre que ocorre um erro no SDK iOS.
Nome do método | Descrição |
---|---|
É disponibilizado a seguir a lista de possíveis códigos de erro do SDK Android:
Código | Descrição |
---|---|
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as informações necessárias para instalação do SDK da plataforma Unico IDCloud em seus aplicativos iOS
É necessário que seu ambiente de desenvolvimento esteja de acordo com os seguintes pré-requisitos:
O componente de captura disponibilizado por meio do SDK iOS é compatível com todos os dispositivos que possuam iOS 11 ou versões mais recentes. Você pode conferir a lista com esses dispositivos nos canais de suporte oficiais da Apple.
Para implementar o SDK iOS da plataforma Unico IDCloud ao seu aplicativo iOS, siga o passo a passo listado abaixo:
O CocoaPods é um gerenciador de dependências para projetos Cocoa, para instruções de uso e instalação visite a documentação do oficial do Cocoapods. Para integrar o SDK iOS em seu projeto Xcode usando CocoaPods, siga as orientações abaixo:
Inclua o unicocheck-ios
em seu Podfile
:
Em seguida, basta utilizar o comando em seu terminal para instalar as dependências:
Se estiver executando o projeto em .xcodeproj é necessário abrir o projeto em .xcworkspace
O Swift Package Manager é um gerenciador de dependências para projetos Swift. Ele é integrado ao sistema de compilação Swift para automatizar o processo de download, compilação e vinculação de dependências. Para integrar o SDK iOS em seu projeto usando o SPM, siga as orientações abaixo:
Inclua a dependência em seu arquivo Package.swift
:
Entre em contato com o CSs e/ou time de Onboarding.
Solicite a SDK Key informando os identificadores de suas aplicações. Bundle Identifier para iOS, PackageID para Android e Host para WEB.
Os identificadores de suas aplicações serão vinculados a SDK Key pela equipe da Unico.
Você recebe a sua SDK Key para implementar o AcessoBioConfigDataSource
Pronto. Finalizada a instalação do SDK, siga para a implementação lendo o material Guia de uso e integração a seguir:
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Método | Descrição |
---|---|
getCode()
Método utilizado para obter o código de erro ocorrido
getDescription()
Método utilizado para obter a descrição de erro ocorrido
73000
The Session was cancelled because of an unknown and unexpected error. The Unico Check SDK leverages a variety of iOS APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73001
Context invalid
73003
The API version needs to be 11 or newer.
73006
Unable to open camera on emulators
73100
Unable to connect to internet
73200
Could not find the unico_sdk json file
73202
Unable to load unico_sdk json file
73203
Unable to load AcessoBioConfigDataSource
73204
Unable to initialize the SDK, please configure the environment on setEnviroment method of build.
73300
Unable to get unico authentication object
73301
Unable to parse unico authentication object
73302
Could not find the unico token
73701
Could not find active liveness import
73702
Unable to initialize active liveness in production mode
73703
Unable to get active liveness session
73704
The user pressed the cancel button and did not complete the Session.
73705
The Session was not performed successfully and a FaceScan was not generated. In general, other statuses will be sent to the developer for specific unsuccess reasons.
73706
The camera access is prevented because either the user has explicitly denied permission or the user's device is configured to not allow access by a device policy.
73707
The Session was cancelled due to the app being terminated, put to sleep, an OS notification, or the app was placed in the background.
73708
The Session was cancelled because the device is in landscape mode. The user experience of devices in these orientations is poor and thus portrait is required.
73709
The Session was cancelled because the device is in reverse portrait mode. The user experience of devices in these orientations is poor and thus portrait is required.
73710
The Session was cancelled because the user was unable to complete a Session in the default allotted time or the timeout set by the developer.
73711
The Session was cancelled due to memory pressure.
73712
The Session was cancelled because your App is not in production and requires a network connection.
73713
The Session was cancelled because your key needs to be validated again.
73714
The Session was cancelled because the developer-configured encryption key was not valid.
73715
The Session was cancelled because not all guidance images were configured.
73716
The Session was cancelled because SDK was unable to start the camera on this device.
73717
The Session was cancelled because the user was in a locked out state.
73718
The Session was cancelled because of an unknown and unexpected error. SDK leverages a variety of iOS APIs including camera, storage, security, networking, and more. This return value is a catch-all for errors experienced during normal usage of these APIs.
73719
The Session was cancelled because the user pressed the Get Ready screen subtext message. Note: This functionality is not available by default, and must be requested from FaceTec in order to enable it.
73720
The Session was not processed.
73721
The Session can't be performed: attempts limit exceeded.
73722
The Session can't be performed: face alignment timeout.
73730
Unable to initialize an active liveness session because of an unknown and unexpected license error.
73731
Unable to initialize an active liveness session because the license has expired.
73800
Could not build encrypted key
Possuir a versão 15.0.1 ou superior do Xcode instalado (IDE oficial de desenvolvimento da Apple);
Possuir a versão do SDK iOS na versão 11 ou superior;
Possuir o gerenciador de dependências Cocoapods ou Swift Package Manager já configurado.
getColorSilhouetteSuccess()
Método utilizado para customizar a cor de sucesso da silhueta
getColorSilhouetteError()
Método utilizado para customizar a cor de erro da silhueta
getColorBackground()
Método utilizado para customizar a cor de fundo da silhueta
getColorBoxMessage()
Método utilizado para customizar a cor de fundo da mensagem
getColorTextMessage()
Método utilizado para customizar a cor de texto da mensagem
getColorTextPopupError()
Método utilizado para customizar a cor de texto e ícones do popup
getColorBackgroundPopupError()
Método utilizado para customizar a cor de fundo do popup
getColorBackgroundButtonPopupError()
Método utilizado para customizar a cor de fundo do botão do popup
getColorTextButtonPopupError()
Método utilizado para customizar a cor de texto do botão do popup
getColorBackgroundTakePictureButton()
Método utilizado para customizar a cor de fundo do botão de tirar foto manualmente
getColorIconTakePictureButton()
Método utilizado para customizar a cor de ícone do botão de tirar foto manualmente
getColorBackgroundBottomDocument()
Método utilizado para customizar a cor de fundo do box na captura de documentos
getColorTextBottomDocument()
Método utilizado para customizar a cor de texto do box na captura de documentos
getImageIconPopupError()
Método utilizado para customizar o ícone do Popup de erro, exibido quando a face é posicionada de forma incorreta no frame de captura.
getProgressBarColor()
(opcional)
Método opcional utilizado para customizar a cor do ícone de loading da camera Liveness com interação. Caso não implementado getColorBoxMessage()
é ultilizado.
getCancelButtonIconColor()
(opcional)
Método opcional utilizado para customizar a cor do ícone de cancelar da camera Liveness com interação. Caso não implementado getColorBackgroundTakePictureButton()
é ultilizado.