OSX El Capitan версия 10.11.4Почему OSX постоянно запрашивает разрешение брандмауэра для моего приложения, которое подписано?
Я создаю приложение в 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
После перезагрузки с брандмауэром позволил мне получить подсказку спрашивая меня, чтобы позволить приложению принимать входящие соединения.
Если я говорю «ОК», то он работает (очевидно), и если «deny», то брандмауэр блокирует порт.
Мой вопрос: Почему я получаю запрос, если подпись моего приложения хорошая?
Как только я нажал «принять», я тоже не вижу его в своих приложениях брандмауэра.
EDIT: Я забыл упомянуть, что мой брандмауэр настроен на «Автоматически разрешать подписанное программное обеспечение для приема входящих соединений». Вот почему я озадачен, так как мое приложение подписывается и передает проверку кода.