我正在将 Mac 笔记本电脑从一台换到另一台。我决定从头开始,手动安装所有东西,以避免多年来积累的垃圾。我的旧笔记本电脑使用的是 Yosemite 10.10.2(从 10.8 升级而来),新笔记本电脑使用的是 10.10.3。
2012 年 12 月,我购买了佳能 MG6250,安装了软件(MP Navigation EX v5.0)后,我只需按下打印机上的按钮,页面就会被扫描并自动发送到选定的计算机(我的笔记本电脑)。
我在两台笔记本电脑上都使用了该功能,但在旧电脑上它可以完全自动运行,而在新电脑上,即使应用程序在防火墙列表中,防火墙仍会不断请求权限。而它在旧笔记本电脑的防火墙列表中却没有!
我尝试过重启新笔记本电脑,并将 MP Navigator EX 5.0 Opener 应用程序添加到防火墙,但没有任何效果。两台笔记本电脑的安全窗格中的所有设置都相同。
我查看了所有类似的帖子,但它们要么讨论旧 OSX 版本的防火墙,要么检查代码签名。我想知道这是否是一种有效的方法,因为 (a) 该软件早于任何代码签名要求(2012 年 12 月和 2013 年 9 月的版本)并且 (b) 它在我的旧笔记本电脑上正常运行。
我注意到文件中的应用程序名称(MP Navigator EX)与警告中提到的名称(MP Navigator EX 5.0)略有不同,但我无法将该应用程序重命名为包含版本的名称。
经过进一步的调整,我发现当我能够重命名应用程序时,该功能将停止工作,因为路径在某处是硬编码的。我还将网守设置为接受所有应用程序,但没有效果。我甚至测试了是否关闭防火墙、启动扫描并再次打开防火墙。
我已经测试过签名codesign --verify -vv /Applications/.....
,该应用程序根本没有签名。
答案1
不确定到底发生了什么(即我采取了哪些步骤起了作用),但看起来我已经解决了这个问题。
阅读几篇博客文章:
我发现“socketfilterfw”是驱动“系统偏好设置”窗格中的列表的命令行版本。
第二个 URL 显示了当前在 Yosemite 下有效的选项列表。第一个 URL 使用的选项在 Yosemite 中不再有效。
这是我做的:
cd /usr/libexec/ApplicationFirewall
sudo ./socketfilterfw --add "/Applications/Canon\ Utilities/MP\ Navigator\ 5.0.app"
sudo ./socketfilterfw --unblockapp "/Applications/Canon\ Utilities/MP\ Navigator\ 5.0.app"
最后,我重新启动了笔记本电脑。
现在,该应用程序在应用程序列表中不可见,但它确实可以运行。
我还没有找到 -T、-U、-B 和 -L 选项的含义。
希望这对将来的某人有所帮助。