2

私のインストーラは PackageMaker を使用して作成されています。その後、次のコマンドを使用してインストーラーをコード署名しました。

productsign --sign 'Blah, Inc.' インストール.mpkg/CS/インストール.mpkg

これはかなりうまく機能しているようで、次のコマンドを使用して署名されていることがわかりました。

pkgutil --check-signature Install.mpkg

証明書はキーチェーンでシステムにインストールされているため、インストーラーは右上隅に小さなロックを表示しているようです。これをクリックすると、証明書が開きます。

証明書がインストールされていないシステムにインストーラーを配置すると、ロックが表示されなくなります。ただし、コマンドを実行して証明書を確認することはできました。

1) インストール前にコード署名をグラフィカルに確認する方法はありますか? (コマンドラインを実行したくない)

2)ファインダーを使用してmpkgファイルからフォルダーを削除し、インストーラーが改ざんを訴えるかどうかを確認しました。しかし、そうはなりません。改ざんされた場合にインストーラーがインストールを停止できる方法はありますか?

3)証明書を使用するxcodeのオプションを使用して、パッケージ内のすべてのバイナリ(主にデーモン)にもコード署名しました。ここでもバイナリが署名済みであることを確認できますが、kernel[0]: CODE SIGNING: cs_invalid_page(0x1000): p=224[MyDaemon] clearing CS_VALID. というメッセージが表示されます。

グーグル、http://feedback.photoshop.com/photoshop_family/topics/photoshop_13_0_4_x64_how_can_i_get_rid_of_the_could_not_complete_your_request_because_of_aを見つけました。しかし、私はまだ彼らが何を目指しているのかはっきりしていません。誰かが私を助けることができますか?

4

2 に答える 2

3

署名できます。パッケージですが、証明書ではなく証明書でmpkg署名する必要があります。Developer ID ApplicationDeveloper ID Installer

署名する.mpkgと、内部パッケージに署名する必要があるという警告が表示されますが、署名は内部.pkg署名の有無にかかわらず有効であるようです。

内部 .pkg を変更すると、.mpkg が Gatekeeper チェックに失敗することをテストしました 壊れたインストーラー

したがって、内部の .pkg ファイルごとに次のことを行う必要があります。

sudo productsign --sign "<Developer ID Installer: Cert>" "<source.mpkg>/Contents/Packages/<source.pkg>" "<destination.mpkg>/Contents/Packages/<source.pkg>"

次に、.mpkg に対して次のことを行います。

sudo productsign --sign "<Developer ID Application: Cert>" "<Source .mpkg>" "<Destination .mpkg>"
于 2014-02-04T22:33:21.730 に答える
-1

のみ署名できflat packagesます。あなたのパッケージには拡張子 .mpkg があり、これは古いバンドル形式だと思います。署名する場合は、フラット パッケージを使用していることを確認してください。

于 2013-08-15T09:03:12.470 に答える