kch*_*kch 19 safari macos command-line codesign safari-extension
而不是去Extension Builder> Build Package ...,我想.safariextz从MyExtension.safariextension文件夹中构建一个包.
我知道我可以解压缩扩展程序xar -xf.我怀疑返回的方式包含它xar,但后来我需要做代码签名的事情,这可能涉及或可能不涉及协同设计(1).
以下是Omar Ismail的说明,省略了对单独的shell脚本的需求.这将全部发生在目录中safari/,我们将在该目录safari/appname.safariextension/中对目录进行签名以成为扩展名safari/appname.safariextz.第一件事是使用Extension Builder的方式以正式方式签署扩展Build Package.
设置西拉:
1.下载并解压缩/解压
https://github.com/downloads/mackyle/xar/xar-1.6.1.tar.gz
无论你想要的可执行XAR-1.6.1(XAR 1.6dev没有按不支持我们需要的选项)
2.在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
Run Code Online (Sandbox Code Playgroud)
设置证书:
1.在safari/
mkdir certs/
xar161 -f appname.safariextz --extract-certs certs/
Run Code Online (Sandbox Code Playgroud)
2.打开钥匙串访问和出口的Safari浏览器的开发者证书Safari浏览器/证书/ certs.p12(用于certs.p12使用空白密码,然后使用Mac的密码导出证书),
在Safari 3 /证书/
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
Run Code Online (Sandbox Code Playgroud)
这是可能的,你可以得到证书certs/cert.p12,而不是所需要的--extract-certs步骤(因此不需要扩展建立了正式的方式),但我不OpenSSL的认识还不够,而且只有在设置好需要的那一步无论如何.
一切都设置好后,签署扩展名:
在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
Run Code Online (Sandbox Code Playgroud)
这完全出现在2006款Snow Leopard MacBook上,因此在更新的机器上可能会有所不同.
| 归档时间: |
|
| 查看次数: |
6453 次 |
| 最近记录: |