2016-04-15 5 views
2

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: Я забыл упомянуть, что мой брандмауэр настроен на «Автоматически разрешать подписанное программное обеспечение для приема входящих соединений». Вот почему я озадачен, так как мое приложение подписывается и передает проверку кода.

ответ