Aceitei isso tantas vezes que o firewall já deve se lembrar.
Por exemplo, eu o obtenho no Eclipse ao iniciar meus programas java no modo de depuração ... às vezes esse diálogo é exibido apenas muito em breve, como meio segundo, e desaparece. Também o obtenho no iTunes (quando habilito o compartilhamento de minha biblioteca) e em outros programas, apesar de tê-los listados no painel de preferências do Firewall (configurações avançadas).
macos
snow-leopard
firewall
Peter Štibraný
fonte
fonte
Respostas:
Existem duas opções aqui:
plist
arquivo desses aplicativos, executá-los e adicioná-los à lista. O especialista é responsável por muitos comportamentos e estou disposto a apostar que uma atualização para o sistema operacional ou o aplicativo pode causar a quebra do "link".Sobre
plist
arquivos ... Um plist é um tipo especial de arquivo de texto que contém propriedades que o aplicativo e outros recursos, normalmente o sistema operacional, usam para reter e reutilizar as informações necessárias para executar o aplicativo.plist
é um tipo de arquivo e tem muitos usos, geralmente armazenando preferências do usuário, mas, essencialmente, é um arquivo XML. Você pode verificar se existem caches, geralmenteplist
arquivos, para os aplicativos em questão em/Library/Caches
e/System/Library/Caches
. Há também um,~/Library/Caches/
mas coisas ruins podem acontecer quando se esconde por aí, então deixe em paz. O sistema entra nessas pastas por uma grande variedade de razões, e eu costumo limpar as duas primeiras pastas que listei completamente uma vez por mês.fonte
~
s nos caminhos de arquivo acima referenciam a pasta inicial do usuário atual ou o diretório raiz?Eu nunca tive que criar um certificado usando esse método.
Se isso não ajudar, tente sem
--deep
e sem a barra à direita:Observe, apenas para esclarecer: depois de aplicar a assinatura, inicie o aplicativo, aceite as conexões de entrada uma última vez, saia e inicie novamente para verificar se a solicitação foi encerrada.
fonte
-
after--sign
significa que "assinatura ad-hoc" é usada; não é necessário ter um certificado para usar esse comando. Não entendo por que isso contradiz o uso do terminal. Corraman codesign
para ver a explicação.sudo codesign --force --sign - /path/to/application.app
funcionou para mim, mas não a variação sugerida pelo autor. Gostaria de saber se--deep
ou a barra principal foi um problema.Embora o link do RedYeti seja útil, apenas para economizar alguns cliques para outros, deixe-me recapitular como gerar um certificado de assinatura de código e usá-lo para a (re) assinatura de código:
Crie seu próprio certificado de assinatura de código:
No Acesso às Chaves, Acesso às Chaves> Assistente de Certificado> Criar um certificado. Isso inicia o Assistente de certificado:
Nome: Digite aqui uma sequência arbitrária que você possa se lembrar. Evite espaços, caso contrário, você precisará escapar do nome do certificado ao usá
codesign
-lo na linha de comando.Tipo de identidade: Raiz autoassinada
Tipo de certificado: assinatura de código
Marque a caixa "Deixe-me substituir os padrões", isso é muito importante
Número de série: 1 (OK, desde que a combinação nome / número de série do certificado seja única)
Período de validade: 3650 (dá-lhe 10 anos)
E-mail, nome, etc. preencha como desejar.
Informações do par de chaves: definido como RSA, 2048 bits. Realmente não importa IMHO.
De "Extensão de uso da chave" até "Extensão de nome alternativo do assunto": aceite os padrões.
Localização: chaveiro de login.
Depois de criado, defina como "Sempre confie" no chaveiro de logon: clique com o botão direito do mouse no certificado, escolha "Obter informações" e, na seção "Confiança", defina "Ao usar este certificado" para "Confiar sempre".
Assinando novamente um aplicativo:
codesign -f --deep -s <certname> /path/to/app
Verifique se funcionou:
codesign -dvvvv /path/to/app
Desfrutar!
ATUALIZAÇÃO: As pessoas me perguntaram por que isso "não está funcionando" no macOS 10.14 "Mojave". Agora que finalmente atualizei :-), eis o que aprendi.
Basicamente, não use um certificado autoassinado para assinatura de código. Gere um certificado usando seu ID Apple no Xcode . Para recapitular brevemente as etapas:
Em Xcode> Preferências> Contas, selecione seu ID de desenvolvedor Apple, clique em "Gerenciar Certificados", selecione "+" no canto inferior esquerdo, e oferece a opção "Desenvolvimento da Apple". Selecione isso, isso fará um certificado para você. Clicando com a tecla Ctrl pressionada no novo certificado, você pode exportá-lo (em
.p12
formato) e, aoopen
clicar nesse.p12
arquivo, ele é carregado no chaveiro de Login.Você verá que este certificado é válido por um ano, "Emitido por: Autoridade Certificadora de Relações com o Desenvolvedor da Apple Worldwide". Suspeito que seja mais confiável do que um certificado autoassinado.
Agora você pode assinar seu aplicativo como antes com
codesign -f -s <apple_ID> /path/to/prog
. Eu tentei com um binário simples (compilado dehello.c
:-)), e pode ser verificado comcodesign -v
.Ainda não testei com pacotes Python, por isso não aconselho as pessoas que mencionaram em seus comentários que isso não pode assinar "python.app".
fonte
Isso está relacionado ao fato de o aplicativo ser assinado ou não. Se não estiver assinado, a preferência não será lembrada.
Para ver se um aplicativo está assinado, faça isso no Terminal:
Para o Eclipse - o meu diz que não está assinado. Não posso comentar mais sobre como assinar o aplicativo, pois não me preocupei em fazer isso, mas esta resposta no superusuário cobre:
https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841
fonte
Apenas uma observação: se você estiver usando um ambiente virtual, assine o aplicativo que está sendo usado para o ambiente. Eu sei que isso é óbvio, mas precisava ser dito, no entanto.
fonte
Compreendo que este é um antigo questionário, mas foi o primeiro hit do google para mim quando tive o mesmo problema. Só queria adicionar algo para outras pessoas que possam pousar aqui.
Para executar qualquer um dos comandos codesign descritos aqui, é necessário ter as ferramentas de linha de comando xcode instaladas. Sem isso, uma mensagem de erro é exibida:
Para corrigir isso, instale as ferramentas com:
Eu teria comentado no post de ahall, mas não tenho pontos de reputação para fazê-lo.
fonte
Eu sempre recebia essa caixa de diálogo (Canon ccpd) depois de iniciar o computador. Abra firewall> segurança e privacidade> desbloqueie para ativar as alterações> clique no botão "Ativar modo furtivo"> clique no botão "Bloquear todas as conexões de entrada".
Não há mais caixa de diálogo irritante do driver de impressora Canon depois disso.
fonte
Eu tentei tudo o que precede no Mac 10.13 e nada funcionou.
No final, escrevi um script que rodava no logout anexado ao gancho de logon que desativava o firewall. Quando conectado, não precisava mais de permissão, o uso do delayedlauncher executava outro script que ativava o firewall.
Tudo bem agora
fonte
Minha situação envolve duas cópias do Eclipse instaladas no MacOS Mojave 10.14.5. A primeira cópia foi autorizada com o firewall do MacOS. A segunda cópia sempre apresentaria o prompt "aceitar conexões de entrada". Escolher "Aceitar" continuaria a apresentar a mensagem após cada reinicialização, aparentemente a configuração do firewall não foi atualizada.
A solução foi abrir Preferências do sistema MacOS -> Segurança e privacidade -> Firewall, desbloquear a tela, Opções de firewall. Selecione Eclipse.app "Permitir conexões de entrada" e remova-o com o botão "-". A próxima vez que selecionei "Permitir" para o Eclipse "aceitar conexões de entrada" foi a última.
fonte
A solução para mim foi desativar o firewall completamente. É extremamente comum criar partes de software ativadas para a Web que, obviamente, não são assinadas porque você as está compilando nativamente.
Abra os holofotes com a barra de espaço CMD + e pesquise "privacidade" e selecione "Segurança e privacidade". Em seguida, mude para a guia "Firewall" e desative o firewall lá.
fonte