iOS
BCC Face é uma biblioteca destinada a ser integrada em uma aplicação iOS a partir de um .framework arquivo.
Ela usa a câmera do dispositivo para tirar uma foto de um rosto para fins biométricos. Ela fornece um teste simples de liveness ativo, exigindo que a pessoa sorria por cerca de um segundo e/ou olhe para a direita ou para a esquerda. O teste de liveness inclui uma opção para falar as instruções, facilitando o fluxo de trabalho para os usuários. Além disso, ela fornece um teste de liveness passivo que pode ser usado para verificar se a foto foi tirada de uma pessoa real sem exigir interação do usuário.
Este manual está atualizado para a versão BCC Face Mobile iOS 4.11.3.
O teste de liveness passivo está disponível apenas a partir da versão 4.4.0 em diante.
Requisitos
Git
CocoaPods, disponível em https://cocoapods.org/.
Instalação
Instalando Dependências
1 - Adicione os seguintes Pods às dependências da aplicação no Podfile:
pod 'GoogleMLKit/FaceDetection'Se a aplicação não possuir um Podfile, ele pode ser criado na pasta raiz do seu projeto Xcode usando o comando pod init no terminal. O Podfile não aparecerá diretamente no Xcode; ele será criado no diretório do projeto.
É preferível usar frameworks dinâmicos. Isso pode ser indicado usando a flag use_frameworks! no Podfile.
Um exemplo de Podfile com um target chamado BCCs-Sample é mostrado abaixo:
platform :ios, '15.0'
target 'BCCs-Sample' do
use_frameworks!
pod 'GoogleMLKit/FaceDetection'
pod 'lottie-ios'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DEVELOPMENT_TEAM'] = "YOUR_DEVELOPMENT_TEAM_KEY"
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
endRecomenda-se usar a mesma versão mínima do iOS suportada pela sua aplicação que a deste framework: iOS 15.0, como no exemplo acima. Também é aconselhável definir a BUILD_LIBRARY_FOR_DISTRIBUTION = YES flag no Podfile para garantir compatibilidade com versões mais antigas do SDK.
2 - Feche o projeto Xcode, abra um terminal e vá até a pasta onde está o Podfile, e então execute:
Após a execução terminar, um arquivo com a extensão .xcworkspace será criado na mesma pasta.
3 - Abra o novo .xcworkspace arquivo.
A partir de agora, sempre que o usuário quiser abrir o projeto, é necessário abri-lo por meio deste .xcworkspace arquivo, pois ele inclui as dependências.
Importação e Configuração
Importando o Projeto
Abra o projeto usando o
.xcworkspacearquivo.Adicione o
BCCFace.frameworkarquivo ao projeto, depois adicione-o à lista de frameworks da sua aplicação.Mova o
.frameworkarquivo para a árvore de arquivos do projeto.Se já houver uma pasta de frameworks, é recomendável mover o arquivo para lá.
Abra as configurações do projeto.
Vá para a aba General .
Clique e arraste o
.frameworkpara a árvore do projeto na seçãoFrameworks, Libraries, etc.
Altere a configuração
BCCFace.frameworkdeDo not embedparaEmbed & Sign.Altere a versão de destino do seu projeto para um mínimo de iOS 15.
Recomenda-se desativar iPad como destino.
Configuração Inicial
Esta versão não possui dependências do Firebase, nem de uma configuração inicial chamada pelo AppDelegate. A única configuração inicial necessária é que a aplicação deve solicitar permissão de uso da câmera. Para isso, adicione a seguinte chave no arquivo info.plist , na Information Property List:
O valor da chave é uma mensagem que será mostrada ao usuário ao solicitar permissão de uso da câmera. Esse valor pode estar em branco ou preenchido com uma mensagem personalizada.
Uso
Parâmetros e Construtor
Para usar corretamente a biblioteca BCC Face, há alguns parâmetros obrigatórios.
Abaixo é mostrado um exemplo simples de uso da biblioteca:
O BCCFaceBuilder o construtor da classe recebe os seguintes parâmetros:
hostVC: UIViewController- Controlador de visualização que chama a tela de captura.delegate: BCCFaceDelegate- Interface responsável por notificar eventos de captura (por exemplo, falha ou sucesso).
O initializeCapture o método também aceita um parâmetro opcional, conforme mostrado abaixo:
Se você quiser que a navegação ocorra por meio de um navigation controller, deve fornecê-lo ao chamar o método.
O BCCFaceBuilder a classe é responsável por lidar com a configuração de uso para BCCFace. Os seguintes parâmetros são aceitos para configurar a captura biométrica e o comportamento do software:
buildSmileCheck(with smileProbability: ClosedRange<Float> = 0.5...1.0)- Adiciona sorriso para o teste de liveness e define o limite de aceitação. Este recurso está habilitado por padrão.removeSmileCheck()- Remove o sorriso da verificação de liveness.buildRotationCheck(_ rotationChecks: [HeadRotationCheck], headRotationAngle: ClosedRange<Float> = -6.0...6.0)- Define uma lista de testes de liveness para rotação da cabeça e o ângulo máximo de rotação. Este recurso está habilitado por padrão. As opções de rotação da cabeça são:removeHeadRotation()- Remove a rotação da cabeça da verificação de liveness.addPassiveLiveness()- Adiciona o teste de liveness passivo. Este recurso é usado para verificar se a foto capturada é de uma pessoa real sem exigir qualquer interação do usuário. Para usar este recurso, você DEVE desativar as verificações de liveness ativas (removeSmileCheck()eremoveHeadRotation()) que são adicionadas por padrão.buildSpeechSettings(_ speechSettings: SpeechSettings)- Define os critérios para fala de acessibilidade, usando os seguintes parâmetros:volume- O volume do áudio entre0.0e1.0.startsMuted- Define se as instruções começam no mudo ou não (truepara mudo).pitch- Define o tom da voz das instruções entre0.5(baixo) e2.0(alto).speed- Define a velocidade da voz das instruções. Esse valor deve ser positivo.
Os valores pré-definidos podem ser acessados por meio da variável estática:
removeSpeech()- Remove a fala de acessibilidade.setInstructionEnable(_ enable: Bool)– Define se a tela de instruções está ativada ou desativada.forceLanguage(_ language: BCCLanguages?)- Força que as instruções sejam exibidas em um único idioma. Se o idioma do dispositivo não for suportado, o inglês será usado. Os idiomas suportados são:enableFlashButton(_ enable: Bool)– Ativa (true) ou desativa (false) o botão de flash na câmera traseira. Padrão: desativado (false).enableManualCapture(_ enable: Bool)– Ativa (true) ou desativa (false) o botão de captura manual, permitindo que o usuário ignore as verificações automáticas de captura. Ao realizar uma captura manual, o usuário poderá revisar a foto capturada antes de concluir o processo.setImageCompressionFormat(_ format: ImageCompressionFormat)– Define o formato de compressão para uma captura de liveness passivo. As opções disponíveis são.jpeg(padrão) ou.jpeg2000.enableIntegrityValidation(clientSecret: Data, nonce: Data)– Ativa a validação de integridade para a detecção de liveness passivo, adicionando uma camada extra de segurança para garantir a integridade do payload.
Para referência, aqui está uma lista completa de parâmetros e valores padrão:
O teste de liveness ativo (usando sorriso e rotação aleatória da cabeça) está habilitado por padrão. Para usar apenas a verificação de liveness passivo, antes de adicioná-la, é necessário remover os métodos de liveness ativo do construtor:
Aqui está um trecho de código para inicializar uma captura usando apenas o teste de liveness passivo:
Valores de Retorno
Os resultados da última captura facial podem ser recuperados usando o faceCaptureDidFinish método da interface BCCFaceDelegate :
O data o objeto contém as imagens capturadas durante o processo:
As propriedades retornadas são:
originalPhoto(imagem) - A foto original tirada pela câmera.croppedPhoto(imagem) - A foto recortada, que é a imagem do rosto recortada da foto original.passiveResult(Data) - Conteúdo do arquivo da coleta para liveness passivo. Está presente apenas se tiver sido capturado com sucesso. É o retorno da coleta para liveness passivo como Dados JPEG. Esses dados podem ser salvos/exportados diretamente para um arquivo ou enviados para a rede (para rede: a codificação do sistema pode ser feita facilmente, por exemplo, string Base64).
Se o usuário abortar a captura, fechando antes de capturar as biometria, o método faceCaptureDidAbort será chamado. Você pode implementar este método para tratar esse cenário.
Projeto de Exemplo
Este é um projeto de exemplo funcional para uma captura facial usando BCC Mobile Face iOS:
Instruções do Agente: Consultando Esta Documentação
Se você precisar de informações adicionais que não estejam diretamente disponíveis nesta página, você pode consultar a documentação dinamicamente fazendo uma pergunta.
Faça uma solicitação HTTP GET na URL da página atual com o parâmetro de consulta ask :
A pergunta deve ser específica, autônoma e escrita em linguagem natural. A resposta conterá uma resposta direta à pergunta e trechos e fontes relevantes da documentação.
Use este mecanismo quando a პასუხa não estiver explicitamente presente na página atual, você precisar de esclarecimentos ou contexto adicional, ou quiser recuperar seções relacionadas da documentação.
Última atualização
Isto foi útil?

