2015-02-04 9 views
8

Sto sviluppando una semplice app server python3. Invoco in questo modo:Come prevenire il popup OSX per le connessioni in entrata per l'app Python?

python3 bbserver.py

Ogni volta che dopo aver fatto questo ho la comparsa OSX:

Vuoi l'applicazione “Python.app” per accettare le connessioni di rete in entrata?

Ho provato a fare un'eccezione per eseguibile python3 (non c'è python3.app) nel firewall e hanno provato il codice firma con un certificato codesign così:

codesign -f -s mycodecert/Library/Frameworks /Python.framework/Versions/3.4/bin/python3 --deep

Nessuna fortuna.

+0

Forse devi renderlo un'applicazione autonoma se vuoi escludilo. – zord

+0

Grazie, mi stavo chiedendo. Significa che ho bisogno di riconvertirmi in stand-alone ogni volta che eseguo una modifica? –

+0

Non ho mai provato, ma penso che tu possa modificare il file sorgente all'interno dell'app. – zord

risposta

2

Se si utilizza un virtualenv o qualcosa di simile si potrebbe firmare la versione sbagliata di python.

sudo codesign --force --deep --sign - $(which python) 

Per verificare lo stato del certificato utilizzato per firmare un app:

codesign -dv /Library/Frameworks/Python.framework/Versions/3.4/bin/python3 
codesign -dv $(which python) 

Esempio Unsigned:

hostname ~ $ codesign -dv $(which python) 
/usr/local/bin/python: code object is not signed at all 

Esempio Firmato:

hostname ~ $ workon py27 
(py27)hostname ~/py27 $ codesign -dv $(which python) 
Executable=/Users/me/.virtualenvs/py27/bin/python 
Identifier=python-555549446408a33553ca3f479122ce9278a9a269 
Format=Mach-O universal (i386 x86_64) 
CodeDirectory v=20100 size=196 flags=0x2(adhoc) hashes=3+2 location=embedded 
Signature=adhoc 
Info.plist=not bound 
TeamIdentifier=not set 
Sealed Resources=none 
Internal requirements count=1 size=136 
Problemi correlati