Importando a SDK
Remotamente
Iniciando a instalação
pod init
Nosso SDK pode ser importado utilizando CocoaPods.
SDK | Versão atual |
---|---|
ZaigIosFaceRecon | pod 'ZaigIosFaceRecon', '~> 2.3.6' |
Para iniciar a instalação, execute o comando ao lado na pasta raiz do seu projeto.
Adicionando a source no podfile
source 'https://github.com/ZaigCoding/iOS.git'
source 'https://cdn.cocoapods.org/'
O próximo passo é adicionar no arquivo podfile
o source da QI Tech.
Adicionando o pod no podfile
pod 'ZaigIosFaceRecon', '~> <version>'
Por fim, basta adicionar o nome do pod
de acordo com o formato ao lado.
Exemplo de podfile
source 'https://github.com/ZaigCoding/iOS.git'
source 'https://cdn.cocoapods.org/'
target 'ExampleApp' do
use_frameworks!
pod 'ZaigIosFaceRecon', '~> 2.3.6'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['DatadogCore', 'DatadogInternal', 'DatadogCrashReporting', 'DatadogLogs'].include?(target.name)
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
end
Ao integrar dependências no iOS, pode surgir a necessidade de usar linkagem estática para algumas bibliotecas e dinâmica para outras. Essa configuração é relevante para garantir compatibilidade, evitar erros de build e otimizar o desempenho do projeto.
Linkagem Híbrida de Dependências (caso necessário)
A necessidade de linkagem híbrida surge porque algumas bibliotecas têm requisitos específicos, sendo que algumas precisam de linkagem estática para evitar conflitos internos e duplicação de símbolos e outras dependências podem precisar linkagem dinâmica, pois são projetadas para modularidade e compartilhamento entre projetos.
Diferenças Entre Linkagem Estática e Dinâmica
- Estática (static_framework): O código da biblioteca é incorporado diretamente no binário final, reduzindo o tempo de carregamento em runtime e eliminando dependências externas durante a execução.
- Dinâmica (dynamic_framework): A biblioteca é carregada em tempo de execução como um arquivo separado. Isso reduz o tamanho do binário final e facilita atualizações/modificações independentes.
Configurando linkagem híbrida no Podfile
...
use_frameworks! :linkage => :dynamic # CONFIGURANDO O MODO PADRÃO DE LINKAGEM PARA DINÂMICO
...
static_frameworks = ['framework_1', 'framework_2', ...] # INCLUIR TODAS AS DEPENDÊNCIAS QUE PRECISAM SER LINKADAS DE MODO ESTÁTICO
pre_install do |installer|
installer.pod_targets.each do |pod|
if static_frameworks.include?(pod.name)
def pod.static_framework?;
true
end
def pod.build_type;
Pod::BuildType.static_framework
end
end
end
end
Instalando as dependências
pod install
Por fim, execute o comando pod install
para baixar e instalar as dependências.
Permissões Necessárias
Para que a SDK possa acessar os recursos do dispositivo para coletar a selfie do usuário, é necessário que sejam solicitadas permissões ao usuário.
No arquivo info.plist, adicione as permissões abaixo:
Permissão | Motivo |
---|---|
Privacy - Camera Usage Description | Acesso à câmera para capturar a selfie do usuário. |
Iniciando a SDK
import ZaigIosFaceRecognition
class ViewController: UIViewController, ZaigIosFaceRecognitionControllerDelegate {
var zaigFaceRecognitionConfiguration : ZaigIosFaceRecognitionConfiguration?
override func viewDidLoad() {
super.viewDidLoad()
self.setupFaceRecognition()
}
func setupFaceRecognition() -> Void {
// The environment can be 'Sandbox' ou 'Production'
let environment = ZaigIosFaceRecognitionEnvironment.Sandbox
// MobileToken is the key sent to you by QI Tech. Each environment requires a different MobileToken.
let mobileToken = "YOUR_MOBILE_TOKEN_SENT_BY_QITECH"
self.faceRecognitionConfig = ZaigIosFaceRecognitionConfiguration(environment: environment,
mobileToken: mobileToken,
sessionId: "UNIQUE_SESSION_ID",
backgroundColor: "#000000",
fontColor: "#FFFFFF",
fontFamily: .open_sans,
showIntroductionScreens: true,
activeFaceLiveness: true,
audioConfiguration: AudioConfiguration.Enable,
logLevel: .debug
)
}
// Event where you intend to call QI Tech FaceRecognition View Controller - on this example, when the user press 'next' button
@IBAction func pressNext(_ sender: Any) {
let zaigFaceRecognitionController = ZaigIosFaceRecognitionController(faceRecognitionConfiguration: self.faceRecognitionConfig)
zaigFaceRecognitionViewController.delegate = self
let zaigFaceRecognitionViewController = zaigFaceRecognitionController.getViewController()
present(zaigFaceRecognitionViewController, animated: true, completion: nil)
}
// Do something if QI Tech FaceRecognition's SDK successfully collected document picture
func zaigIosFaceRecognitionController(_ faceRecognitionViewController: ZaigIosFaceRecognitionController, didFinishWithResults results: ZaigIosFaceRecognitionControllerResponse) {
}
// Do something if QI Tech FaceRecognition's SDK found any error when collecting document picture
func zaigIosFaceRecognitionController(_ faceRecognitionViewController: ZaigIosFaceRecognitionController, didFailWithError error: ZaigIosFaceRecognitionControllerError) {
}
// Do something if the user canceled the picture collection on any steps
func zaigIosFaceRecognitionControllerDidCancel(_ faceRecognitionViewController: ZaigIosFaceRecognitionController) {
}
}
Para incorporar a SDK ao seu aplicativo você deve iniciar realizar a configuração do seu aplicativo de captura personalizado através da classe ZaigIosFaceRecognitionConfiguration e depois instanciar o ViewController ZaigIosFaceRecognitionController passando como argumento as configurações personalizadas.
Para iniciar o processo de análise de face, basta chamar a função present para chamar o ViewController da QI Tech que realizará a coleta da selfie.
Importante implementar o Delegate responsável por receber os retornos em caso de sucesso, erro ou no caso de o usuário interromper a jornada em qualquer etapa da validação.
Ao lado temos um exemplo completo da implementação.
Mobile Token
Utilizamos um Mobile Token para permitir o acesso autenticado do seu aplicativo a nossa API. Ele provavelmente já foi enviada por e-mail para você. Caso ainda não tenha recebido o seu token, envie um e-mail para suporte.caas@qitech.com.br.
Nossa API espera receber o Mobile Token em todas as requisições ao nosso servidor vindas da SDK, portanto, este deve ser obrigatoriamente incluído como parâmetro de configuração através do método mencionado anteriormente.
Você deve substituir <code>"YOUR_MOBILE_TOKEN_SENT_BY_QITECH"</code> com o Mobile Token recebido do suporte.