我接受了这么多次,防火墙应该已经记住了。
例如,在调试模式下启动Java程序时,我在Eclipse中得到了它……有时此对话框仅在很短的时间内显示,如半秒,然后消失。我也将它用于iTunes(启用共享库时)和其他程序,即使我在防火墙首选项面板(广告设置)中列出了它们也是如此。
我接受了这么多次,防火墙应该已经记住了。
例如,在调试模式下启动Java程序时,我在Eclipse中得到了它……有时此对话框仅在很短的时间内显示,如半秒,然后消失。我也将它用于iTunes(启用共享库时)和其他程序,即使我在防火墙首选项面板(广告设置)中列出了它们也是如此。
Answers:
这里有两个选项:
plist
这些应用程序的文件,运行它们,然后将它们添加到列表中。plist负责许多行为,我敢打赌升级到操作系统或应用程序都可能导致“链接”中断。关于plist
文件... plist是一种特殊的文本文件,其中包含应用程序和其他资源(通常是OS)用于保留和重用运行应用程序所需信息的属性。plist
是一种文件类型,具有多种用途,通常用于存储用户首选项,但从本质上讲,它是一个XML文件。您可以查看plist
中/Library/Caches
和中所涉及的应用程序是否有任何缓存(通常是文件)/System/Library/Caches
。也有其中一种,~/Library/Caches/
但是当在那里乱丢东西时可能会发生坏事,所以就别管它了。系统出于各种原因进入这些文件夹,通常我会每月大约一次彻底清除列出的前两个文件夹。
sudo codesign --force --deep --sign - /path/to/application.app
我从来不需要使用这种方法来创建证书。
如果这样做没有帮助,请尝试不使用--deep
斜杠:
sudo codesign --force --sign - /path/to/application.app
请注意,只是为了使其更清楚:应用签名后,启动应用程序,最后一次接受传入的连接,然后退出并再次启动以验证请求是否消失。
sudo codesign --force --sign - /path/to/application.app
为我工作,但不适用于作者建议的版本。我想知道--deep
斜线是不是一个问题。
尽管RedYeti的链接很有用,但为了节省其他点击次数,让我回顾一下如何生成代码签名证书并将其用于代码(重新)签名:
创建自己的代码签名证书:
在“钥匙串访问”中,“钥匙串访问”>“证书助手”>“创建证书”。这将启动证书助手:
名称:在此处输入一些您可以记住的任意字符串。避免使用空格,否则codesign
从命令行使用时,您需要转义证书名称。
身份类型:自签名根
证书类型:代码签名
选中“让我覆盖默认设置”复选框,这非常重要
序列号:1(只要证书名称/序列号组合是唯一的,就可以)
有效期:3650(为您提供10年)
您可以根据需要填写电子邮件,姓名等。
密钥对信息:设置为RSA,2048位。恕我直言,这并不重要。
从“密钥用法扩展名”到“主题备用名称扩展名”:接受默认值。
位置:登录钥匙串。
创建完成后,在登录钥匙串中设置为“始终信任”:右键单击证书,选择“获取信息”,然后在“信任”部分中,将“使用此证书时”设置为“始终信任”。
重新签名应用:
codesign -f --deep -s <certname> /path/to/app
验证它是否有效:
codesign -dvvvv /path/to/app
请享用!
这与应用程序是否签名有关。如果未签名,首选项将不被记住。
要查看应用程序是否已签名,请在终端中执行以下操作:
cd path/to/your/app
codesign -vvv Eclipse.app/
对于Eclipse-我的说完全没有签名。我没有进一步评论如何签名应用程序,因为我不愿意这样做,但是有关超级用户的答案涵盖了它:
我很欣赏这是一个古老的问答,但是当我遇到同样的问题时,这对我来说是Google的第一击。只是想为可能落在这里的其他人添加一些东西。
为了执行此处概述的任何codesign命令,必须安装xcode命令行工具。没有这些,就会收到一条错误消息:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
要解决此问题,请使用以下工具安装工具:
xcode-select install
我会在ahall的帖子上发表评论,但是我没有名声。
我在Mac 10.13中尝试了上述所有方法,但没有任何效果。
最后,我编写了一个脚本,该脚本在注销时附加到登录钩上,并关闭了防火墙,因此登录时不再需要权限,然后使用delaylauncher运行了另一个打开防火墙的脚本。
现在一切都好
对我来说,解决方案是完全禁用防火墙。创建未经签名的基于Web的软件是非常普遍的,因为您是在本地进行编译的。
使用CMD +空格键打开聚光灯,然后搜索“隐私”,然后选择“安全和隐私”。然后切换到“防火墙”选项卡,并在那里禁用防火墙。