Não é possível usar o NDK antigo (android-ndk-r17c) após a atualização do Catalina devido a nova segurança

14

Após a atualização para o macOS Catalina, meu projeto não será mais compilado. Isso ocorre porque Catalina acredita que os binários no 'android-ndk-r17c' não são de um desenvolvedor confiável.

Você recebe mensagens como: "" ld "não pode ser aberto porque o desenvolvedor não pode ser verificado." "O macOS não pode verificar se este aplicativo está livre de malware"

Eu tenho que usar o NDK antigo devido a problemas com a biblioteca nativa do openCV SDK e os NDKs mais recentes. Eles estão trabalhando nisso, mas o SDK mais recente ainda não está estável o suficiente para mim.

Consegui contornar "clang" e "clang ++", não conseguindo trabalhar, acessando o painel de segurança e clicando em "Allow Anyway" nos alertas de segurança. No entanto, ao tentar fazer isso com "Id", posso passar o primeiro aviso clicando em "Allow Anyway", mas parece ser chamado posteriormente e, na chamada subsequente, não tenho a opção de permitir a abertura.

Na verdade, não existe código. Eu só tenho (e já tive há muito tempo) referência do Android Studio NDK apontando para o NDK antigo por meio da configuração.

No IDE do NDK, ele falha ao carregar o "Id":

"" Ld "não pode ser aberto porque o desenvolvedor não pode ser verificado." "O macOS não pode verificar se este aplicativo está livre de malware"

StainlessSteelRat
fonte
Consulte github.com/android/ndk/issues/1060 . Eu não sei por que você só conseguiu permitir alguns deles. Funcionou bem para mim.
Dan Albert

Respostas:

21

Acabei de encontrar a solução.

É um processo tedioso, mas:

  1. MacOS: Abra Preferências do Sistema
  2. MacOS: acesse Segurança e privacidade (mantenha-o aberto, você precisará dele durante todo o processo)
  3. Unidade: Vá e construa seu projeto. Quando o erro aparecer, clique em "Cancelar"
  4. MacOS: Na janela Segurança e privacidade - clique em "Permitir", próximo ao erro "clang" - para que o sistema MacOS reconheça o aplicativo e o utilize.
  5. O erro aparecerá novamente, mas desta vez solicitará que você "abra". Clique em "Abrir"
  6. A construção falhará várias vezes devido a várias dependências, mas falhará com arquivos diferentes que você precisará permitir, como nas etapas anteriores.
  7. Crie novamente seu projeto.
  8. Se falhar, execute as etapas novamente, até que pare de falhar. Cada erro que você receber com o arquivo não sendo reconhecido será diferente a cada vez
Mudassar Ashraf
fonte
2
adicional: se você fez isso sudo spctl --master-disableantes, existem 3 opções abaixo de 'Permitir download de aplicativos de:', você deve selecionar a segunda chamada 'App Store e identificar desenvolvedores' na etapa 4, para ver os itens 'Permitir' e 'Clang' erro.
Linux #
Adicione as instruções necessárias na guia Geral de Segurança e Privacidade para ver a mensagem de segurança.
Steve
5

Para permitir aplicativos baixados do Anywhere no MacOs Catalana, faça o seguinte:

sudo spctl --master-disable
YuryP
fonte
Isso realmente faz alguma coisa? Eu ainda não pode executar qualquer coisa
Luz
Isso pode remover alguns passos. Por isso, precisamos clicar em "permitir" e "abrir". Caso contrário, cada lib usada por cada ferramenta deve ser permitida. Esta é uma maçã de pesadelo. vamos fazê-lo por pasta base ..
Paschalis
Portanto, para que "Qualquer lugar" seja exibido, você precisa deixar o módulo Segurança e privacidade em Configurações. No entanto, agora ainda recebo a mensagem "não pode ser verificada", mas não há permissão para abrir em nenhum lugar.
UserOneFourTwo 6/04
3

Eu gostaria de acrescentar à resposta de Mudassar Ashraf.

Se você não vir a opção " Permitir " depois de clicar em " Cancelar ", alterne "Permitir download de aplicativos de" na janela Segurança para " App Store e desenvolvedores identificados ". De alguma forma, isso fará com que o botão " Permitir " seja exibido. Depois volte para « Anywhere ». Repita se necessário.

Sergey Manvelov
fonte
1

Se por algum motivo no botão da janela Segurança e privacidade permitir não aparecer, basta mover o ndk para um diretório diferente e tentar todo o processo novamente.

RadekJ
fonte