我有两个 C 二进制文件,它们试图打开网络连接进行通信。
这是为了对外交流。当我第一次运行它时,OS X 的防火墙会弹出标题中给出的消息。我怎样才能摆脱这个?
我怀疑这与代码签名有关?如何对这个二进制文件进行代码签名?
基本上我必须在一台 Mac 机器上构建这个二进制文件,并在应用商店之外分发。
如果机器中启用了 OS X 防火墙,我怎样才能摆脱防火墙弹出?
我有两个 C 二进制文件,它们试图打开网络连接进行通信。
这是为了对外交流。当我第一次运行它时,OS X 的防火墙会弹出标题中给出的消息。我怎样才能摆脱这个?
我怀疑这与代码签名有关?如何对这个二进制文件进行代码签名?
基本上我必须在一台 Mac 机器上构建这个二进制文件,并在应用商店之外分发。
如果机器中启用了 OS X 防火墙,我怎样才能摆脱防火墙弹出?
您可以通过自己签署有问题的应用程序二进制文件来解决此问题。
Disclaimer: Signing an application yourself will make an application appear more
secure to the operating system, when in reality it isn’t. Only sign applications
that you are 100% sure are not spyware or otherwise malicious. If you have any
doubts, just uninstall/reinstall.
第 1 部分:创建签名身份
我想要的解决方案——我自己签署应用程序——要求我创建一个签名身份,也称为签名证书。这很容易做到:
完成后,您将在 Keychain Access 中看到您的证书。验证您选择的名称,您已完成此步骤。做得好!
第 2 步:(重新)签署您的申请
现在您必须签署您的申请。为此,请再次打开终端并使用以下命令:
codesign -s "My Signing Identity" -f /path/to/your/binary/app
将出现一个对话框,单击“允许”。
现在再次启动您的应用程序。您将最后一次获得接受传入连接对话框。单击“允许”。
从现在开始,您将不再收到警告!现在可以享受防火墙处于活动状态的安全性,而不必经常单击“允许”。
信用:作为此更新和注释解决方案指南起点的原始来源是http://silvanolte.com/blog/2011/01/18/do-you-want-the-application-to-accept-incoming -网络连接/
在我的情况下,当我在将 MacOS 更新到 10.15 Cataline 后从 PyCharm 运行 Python 项目时出现此警报。我用
codesign -vvv /Applications/PyCharm.app/
我试图应用此解决方案来修复 Arduino OTA 使用的 python,我发现另一个解决方案描述了自签名应用程序,该应用程序将 $(which python) 声明为要签名的文件路径,但在我的情况下,它解析为 /usr/斌/蟒蛇。自签名这不仅需要我进入 Rootless 模式以允许写入 /usr/bin,而且当我回去测试它时,python 仍然在请求允许传入连接的权限!
正确的自签名python文件实际上是(至少在我的情况下)/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app
一旦我对这个正确的文件路径进行了自签名,Arduino OTA 过程就不再需要我单击允许传入连接 - 万岁!
希望对某人有所帮助。