programador mexico license licencia how downloads developer descargar apple macos command-line safari codesign safari-extension

macos - mexico - licencia de programador apple



¿Cómo puedo construir un paquete de extensión de Safari desde la línea de comandos? (2)

Estas son las instrucciones de Omar Ismail, que omiten la necesidad de scripts de shell separados. Todo esto ocurrirá en un directorio safari/ , donde safari/appname.safariextension/ el directorio safari/appname.safariextension/ para convertirnos en la extensión safari/appname.safariextz . Lo primero es firmar la extensión de manera oficial, con el Build Package Extension Builder.

Configurar Xar:
1. Descargue y descomprima / untar https://github.com/downloads/mackyle/xar/xar-1.6.1.tar.gz en donde quiera que desee el ejecutable xar-1.6.1 (xar 1.6dev no admite el opciones que necesitamos)
2. en xar-1.6.1 /

./configure make sudo make install sudo ln -s /full/path/to/xar-1.6.1/src/xar /usr/local/bin/xar161

Configura tus certificados:
1. en safari /

mkdir certs/ xar161 -f appname.safariextz --extract-certs certs/

2. Abra Keychain Access y exporte su certificado de desarrollador de Safari a safari / certs / certs.p12 (use una contraseña en blanco para certs.p12, y luego use la contraseña de su Mac para exportar el certificado)
3. en safari / certs /

openssl pkcs12 -in certs.p12 -nodes | openssl x509 -outform der -out cert.der (same blank password) openssl pkcs12 -in certs.p12 -nodes | openssl rsa -out key.pem (same blank password) openssl dgst -sign key.pem -binary < key.pem | wc -c > size.txt

Es posible que pueda obtener los certificados de certs/cert.p12 , y no necesite el paso --extract-certs (y, por lo tanto, no necesite que la extensión se haya creado de manera oficial), pero no conozco a opensl lo suficientemente bien, y es Sólo para la configuración que necesita ese paso de todos modos.

Una vez configurado todo, para firmar la extensión:
En safari /

xar161 -czf appname.safariextz --distribution appname.safariextension/ xar161 --sign -f appname.safariextz --digestinfo-to-sign digest.dat --sig-size `cat certs/size.txt` --cert-loc certs/cert.der --cert-loc certs/cert01 --cert-loc certs/cert02 openssl rsautl -sign -inkey certs/key.pem -in digest.dat -out sig.dat xar161 --inject-sig sig.dat -f appname.safariextz rm -f sig.dat digest.dat

Esto fue todo en una MacBook Snow Leopard 2006, por lo que es posible que las cosas sean diferentes en una máquina que esté más actualizada.

En lugar de ir a Extension Builder> Build Package ... , me gustaría .safariextz un paquete .safariextz desde la carpeta MyExtension.safariextension .

Sé que puedo descomprimir una extensión con xar -xf . Sospecho que el camino de regreso involucra empaquetarlo con xar , pero luego tendré que hacer la firma del código, lo que puede o no involucrar al codesign(1) .