2 に答える
以下は Omar Ismail の指示で、別のシェル スクリプトは必要ありません。これはすべてディレクトリで行われ、ディレクトリsafari/
に署名しsafari/appname.safariextension/
て拡張子になりsafari/appname.safariextz
ます。最初に、Extension Builder のBuild Package
.
Xar をセットアップします。 1. https://github.com/downloads/mackyle/xar/xar-1.6.1.tar.gz
を
ダウンロードし
て、実行可能ファイル xar-1.6.1 (xar 1.6dev は必要なオプションをサポートしていません)
2. in 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
証明書を設定します:
1. safari/
mkdir certs/
xar161 -f appname.safariextz --extract-certs certs/
2. キーチェーン アクセスを開き、Safari 開発者証明書を safari/certs/certs.p12 にエクスポートします (certs.p12 には空のパスワードを使用し、Mac のパスワードを使用して証明書をエクスポートします)
。
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
から証明書を取得でき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
これはすべて 2006 年の Snow Leopard MacBook で行ったものであるため、最新のマシンでは状況が異なる可能性があります。
署名オプションを使用して XAR にパッチを適用する方法があるようです。http://code.google.com/p/xar/issues/detail?id=76#c0