3

.appバンドルをゲートキーパーでうまくプレイするのに問題があります。`codesign で検証を実行すると、動作するように見えます:

$ codesign -dvvvv --deep Juno.app
Executable=/Applications/Juno.app/Contents/MacOS/Atom
Identifier=com.junolab.juno-lt
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=203 flags=0x0(none) hashes=3+3 location=embedded
Hash type=sha1 size=20
CDHash=ec3531899318562f7460000d9bbc218606026369
Signature size=8536
Authority=Developer ID Application: Julia Computing LLC (A427R7F42H)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Jul 19, 2015, 2:34:57 PM
Info.plist entries=17
TeamIdentifier=A427R7F42H
Sealed Resources version=2 rules=12 files=20822
Nested=Frameworks/ReactiveCocoa.framework
Nested=Frameworks/Atom Framework.framework
Nested=Frameworks/Mantle.framework
Nested=Frameworks/Atom Helper EH.app
Nested=Frameworks/Squirrel.framework
Nested=Frameworks/Atom Helper.app
Nested=Frameworks/Atom Helper NP.app
Internal requirements count=1 size=180

しかし、Finder で開こうとすると、ゲートキーパーは検証に失敗し (注: これは OSX 10.11 で発生しますが、OSX 10.11 では問題なく動作します。以下の編集を参照してください)、「開発者の身元を確認できません。」「?」codesignゲートキーパー ポップアップの ボタンをクリックすると、「アプリが変更されたか破損しています」というタイトルのヘルプ ページに移動しますが、アプリケーションの検証を依頼するときに、このことを教えてもらうべきだったと思いました。Juno.app は一般公開されているので、必要に応じて見ることができますが、同じ証明書を使用して同じコンピューターで署名された小さなアプリケーションが正常に動作し、非常によく似た出力が得られます。

$ codesign -dvvvv --deep Julia-0.4.2.app
Executable=/Applications/Julia-0.4.2.app/Contents/MacOS/Julia
Identifier=org.julialang
Format=bundle with Mach-O universal (i386 x86_64)
CodeDirectory v=20200 size=537 flags=0x0(none) hashes=20+3 location=embedded
Hash type=sha1 size=20
CDHash=44a98280c062d9e1f2277e457dbdf8b67e1d4ffc
Signature size=8536
Authority=Developer ID Application: Julia Computing LLC (A427R7F42H)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Dec 6, 2015, 6:20:37 PM
Info.plist entries=15
TeamIdentifier=A427R7F42H
Sealed Resources version=2 rules=12 files=983
Internal requirements count=1 size=176

その 2 番目のバンドルJulia-0.4.2.app もダウンロード可能ですJuno.app署名の慣行を変更できるように、ケースで何が問題になっているのかを理解する方法はありますか?

編集: 以下の l'L'l の質問に対処するために、署名プロセスはこのスクリプトJuno.appによって実行されます。キー行は 28 行目です。

codesign -f -s "AFB379C0B4CBD9DB9A762797FC2AB5460A2B0DBE" --deep /Volumes/Juno/Juno.app

.app には、既に署名されている可能性のある他のリソース ( Junoは IDE 組み込みを含むJuliaのディストリビューションであるためJulia-0.4.2.app、のコンテンツなど) が含まれているため、フラグを に追加します。-fcodesign

EDIT 2 : l'L'l はspctl、問題をドリルダウンするために使用することを提案しました。これにより、次の結果が得られました。

$ spctl -a Juno.app -vvvvv && echo yes
Juno.app: rejected
source=obsolete resource envelope
origin=Developer ID Application: Julia Computing LLC (A427R7F42H)

Juno.appこれにより、おそらくいずれか、またはその組み込みフレームワークの 1 つが古いバージョン 1 の封印されたリソース エンベロープをまだ持っている可能性があると思いましたが、ネストされた各リソースを個別に調べると、すべてがバージョン 2 エンベロープを持っていることがわかります。

さらに興味深いことに、この .app は OSX 10.10 では動作しますが、OSX 10.11 では動作しないようです。

4

0 に答える 0