web-dev-qa-db-ja.com

Macでdmgファイルにコード署名を追加する方法

ポータルにdmgファイルがあります。ダウンロード後、開こうとすると、パッケージを開くことが安全でないことを示すメッセージが表示されます。 codesignコマンドを使用してコマンドラインからコードサインを追加でき、追加されているかどうかも確認できます。しかし、まだクリックして私のdmgファイルを開くと、安全でないメッセージが表示されます

17
MacDeveloper

MacOS 10.11.5以降では、codesignツールを使用してディスクイメージ、.dmg、ファイルに署名できるようになりました。

codesign -s <identity> --keychain <full-path-to-keychain> <path-to-disk-image>
21
Graham Miln

これを行うには3つの方法があります。 OS X 10.11.5以降のターミナル。 注:以前のOSバージョンでDMGをコード署名できますが、Sierraは10.11.5以降のDMGしか好きではありません。

codesign --force --sign "Developer ID Application: <identityIdentifier>" <pathToDMG>

検証は(macOS Sierraが必要です)を介して行われます。

spctl -a -t open --context context:primary-signature -v <pathToDMG>

Araeliumは DMG Canvas (v2.3)を更新したため、ビルド時にDMGにコード署名します。

DropDMG もコード署名DMG画像ファイルに更新されました(v3.4)。

App Wrapper (3.6)と呼ばれる(私が開発したツール)もあり、DMGファイルにコード署名できます。

13
Sam Rowlands

以前、私は10.11.5でdmgのコード署名に苦労していましたが、このコマンドcodesign -s <identity> <path-to-disk-image>はわかっています。

私が以前にやっていることは

  1. 読み取り/書き込みDMGを作成する(ディスクユーティリティを使用して作成)
  2. アプリとその他の外部リソースをコピーする
  3. Codesignコマンドを使用してコード付きDMGをコード化する
  4. ディスクユーティリティを使用して読み取り専用DMGに変換する
  5. spctl -a -t open --context context:primary-signature <path-to-disk-image>を使用して確認すると、拒否されます。

次に、いくつかの順列と組み合わせ、私はそれが非常に簡単な簡単な解決策であることに気づきました:

  1. 読み取り/書き込みDMG(ディスクユーティリティを使用して作成)を作成します。
  2. アプリとその他の外部リソースをコピーする
  3. ディスクユーティリティを使用して読み取り専用DMGに変換する
  4. Codesignコマンドを使用してコードで署名されたDMG(今回はSierraで実行しましたが、おそらく10.11.5で動作するはずです)
  5. spctl -a -t open --context context:primary-signature <path-to-disk-image>を使用して確認すると、成功します。

これがうまくいくことを願っています。 :)

6
Khushneet