OSX El Capitan版本10.11.4
我正在Xcode中构建一个应用程序并使用官方开发人员证书进行签名。然后我把它打包成一个我正在签名的DMG。
我的应用程序侦听特定端口上的TCP连接(在本例中为7772)。
我验证了签名:
$ codesign -dvvvv /Applications/Foo.app/
Executable=/Applications/Foo.app/Contents/MacOS/Foo
Identifier=com.foo.bar.Foo
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=69949 flags=0x0(none) hashes=2179+4 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=188672458e5a40f9f5eb72a864ecaee6dbb46970
CandidateCDHash sha256=c0f4bc81011db7123d8bf881d14868e6e4203cdf
Hash choices=sha1,sha256
CDHash=c0f4bc81011db7123d8bf881d14868e6e4203cdf
Signature size=8912
Authority=Developer ID Application: *** Inc. (3********2)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Apr 15, 2016, 4:12:19 PM
Info.plist entries=27
TeamIdentifier=3*********2
Sealed Resources version=2 rules=12 files=32
Internal requirements count=1 size=192
当我在启用防火墙的情况下重新启动时,我会收到提示,要求我允许应用程序接受传入的连接。
如果我说好的,那么它(显然)是有效的,如果"拒绝"然后防火墙阻塞端口。
我的问题是为什么我的应用签名是好的会收到提示?
一旦我点击"接受"我也没有在我的防火墙应用程序中看到它。
编辑:我忘了提及我的防火墙配置为"自动允许签名软件接收传入连接" 。这就是为什么自从我的应用程序签名并通过代码签名验证后我感到困惑的原因。答案 0 :(得分:0)
您应该检查代码指定要求: codesign -vv yourapp.app