私は、開発者 ID 署名を使用して、Mac App Store の外で Mac アプリケーションを配布することに取り組んでいます。以前は問題なく動作していましたが、前回のビルドでは何かが明らかに変更されたため、サーバーからのダウンロード後に Gatekeeper がアプリケーションを開いたときに拒否されました。
本番用の「開発者 ID アプリケーション」証明書を使用しています。私が知る限り、Mac App Store 以外でのアプリケーションの配布の指示に忠実に従いました。
紛らわしい部分は、ゲートキーパーの適合性をテストするために推奨される次のコマンドがすべて正常に実行され、何も問題がないことを示していることです。Xcode オーガナイザーでの検証も問題なくパスします。
$ spctl -a -t exec -vv MyApp.app/
MyApp.app/: accepted
source=Developer ID
origin=Developer ID Application: Company Name (248C748VF9)
$ codesign --verify --deep --verbose MyApp.app/
MyApp.app/: valid on disk
MyApp.app/: satisfies its Designated Requirement
$ /Volumes/Signature\ Check/check-signature MyApp.app/
(c) 2014 Apple Inc. All rights reserved.
YES
前回のビルドから変更された点の 1 つは、コードの一部が新しいフレームワークにリファクタリングされたことです。
アップデート:
コミット履歴のバイナリ検索と適切な量の試行錯誤により、問題を 1 つのコミットに切り分け、新しい「ファイルのコピー」フェーズをメイン アプリケーションに追加して、XPC サービスを適切な場所に移動しました。XPC サービスは、すでにログイン項目ヘルパー アプリケーションにコピーされていました。メイン アプリケーションのビルド フェーズを削除すると問題は解決しますが、残念ながら、メイン アプリケーションが正しく機能するためには XPC サービスが必要になるため、このフェーズを単純に削除することは現実的な解決策ではありません。