您希望应用程序接受传入的网络连接吗?

我有两个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部分:创建签名身份

我想要的解决方案 – 自己签署应用程序 – 要求我创建一个签名身份,也称为签名证书。 这很容易做到:

  1. 打开应用程序>实用程序>钥匙串访问。
  2. 从Keychain Access菜单中,选择Certificate Assistant> Create a Certificate。
  3. 填写证书的名称。 此名称显示在Keychain Access实用程序中作为证书的名称。 这也是您在引用此证书时将使用的名称。 就个人而言,我使用了“My Signing Identity”这个名字。
  4. 从“证书类型”菜单中选择“代码签名”。
  5. 从“类型”弹出菜单中选择“自签名根”。
  6. 选中“让我覆盖默认值”复选框。
  7. 单击继续。
  8. 指定证书的序列号。 只要您没有其他具有相同名称和序列号的证书,任何号码都可以。
  9. 单击继续。
  10. 填写证书信息。 您可以使用真实或虚假数据,我个人使用真实数据。
  11. 单击继续。
  12. 接受其余对话框的默认值。

完成后,您将在Keychain Access中看到您的证书。 validation您选择的名称,然后完成此步骤。 做得好!

第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 -网络连接/

我试图应用这个解决方案来修复Arduino OTA使用的python,我找到了另一个描述自我签名应用程序的解决方案,声明$(哪个python)作为签名的文件路径,但在我的情况下解析为/ usr /斌/ Python的。 自签名这不仅要求我转到Rootless模式以允许写入/ usr / bin,但是当我回去测试它时,python仍然是STILL请求允许传入连接的权限!

事实上,自我签名的正确python文件(至少在我的情况下)/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app

一旦我自行签署了这个正确的文件路径,Arduino OTA进程就不再需要我点击允许传入连接 – Hoorah!

希望能帮助别人。