Se você está trabalhando em um projeto mobile cross platform que usa o keychain, ao executar em um simulador, possivelmente já se deparou em algum momento com este erro:
Error: Error Domain=NSOSStatusErrorDomain Code=-34018 "The operation couldn’t be completed. (OSStatus error -34018.)"
Ou com qualquer outra mensagem que cita o código de erro -34018 do iOS
Bem, eu tive esse erro um projeto React Native. Busquei a solução no google mas, além de muita coisa somente em inglês, não vi nenhuma resposta clara que levasse a solução do problema.
Mas por que este erro acontece? Como resolve-lo?
Pois bem, este erro ocorre principalmente ao executar o app utilizando o simulador do iOS, porque o simulador utiliza o keychain da máquina. Para usa-lo, seu app precisar ter um arquivo Entitlements.plist. Para que o arquivo entitlement seja compilado corretamente e te garanta acesso ao keychain, você precisará assinar seu app, provendo um certificado e um provisiong profile válidos, ainda que você esteja executando no simulador.
Este artigo da apple também me ajudou a resolver o problema, e te mostra alguns troubleshootings para verificar o estado do entitlement após a compliação https://developer.apple.com/forums/thread/114456
Libs como react-native-senstive-info, @react-native-firebase ou qualquer outra que acesse o keychain, irá na verdade, acessar o keychain do seu mac. E para que o app possa acessar o keychain do mac, você precisará compartilhar o keychain, adicionando um capability para seu app.
Para fazer isso, abra seu projeto no XCode, na navegação, clique no seu app. Depois, no painel central, selecione Signing & Capabilities:
Depois clique em + Capability e busque por Keychain
Após adicionar a capability você verá um novo item no painel
Clique no ícone + para adicionar seu app id
Ah, por último mas não menos importante, no Build Setting do seu app, no grupo User-Defined, verifique se você não possui a propriedade CODE_SIGNNING_ALOWED e CODE_SIGNNING_REQUIRED setadas para NO em Debug, se tiver, troque para YES.
É isso!
Imagem utilizada no post https://pixabay.com/pt/photos/computador-seguran%c3%a7a-cadeado-hacker-1591018/
Comentários