2017-05-26 5 views
1

OSX Sierraのデスクトップアプリケーションバイナリに購入したCOMODO証明書をコードサインしようとしています。 私はmacdeployqtコマンド実行の終了時にコード署名検証エラーCSSMERR_TP_NOT_TRUSTEDを持っている:Qtバンドル(CSSMERR_TP_NOT_TRUSTED、OSX)のコードに署名した後に検証エラーが発生しました

$ security unlock-keychain -p "$PASSWORD" /Users/user/Library/Keychains/login.keychain 
$ ~/Qt5.8/5.8/clang_64/bin/macdeployqt app_name.app/ -codesign=(cat ~/keyid3) -verbose=4 -no-plugins # (1) 
# (...) 
Log: Finished codesigning "app_name.app" with identity "118E862D88E30998B6C4BACB8ABCB1FBDEADBEEF" 
ERROR: codesign verification error: 
ERROR: "app_name.app: CSSMERR_TP_NOT_TRUSTED\nIn architecture: x86_64\n" 

同じことが、私は、最終的なバンドルに直接協調設計ユーティリティを使用しようとすると(私は同じ証明書のIDを与えている起こりますXcodeは)ありません:

+ security unlock-keychain -p "$PASSWORD" /Users/user/Library/Keychains/login.keychain 
+ export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate 
+ CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate 
+ /usr/bin/codesign --force --sign 118E862D88E30998B6C4BACB8ABCB1FBDEADBEEF --deep --timestamp=none '<build-path>/app_name' 
+ /usr/bin/codesign --verify '<build-path>/app_name' -dv 
Executable=<build-path>/app_name/Contents/MacOS/app_name 
Identifier=$(PRODUCT_BUNDLE_IDENTIFIER) 
Format=app bundle with Mach-O thin (x86_64) 
CodeDirectory v=20100 size=19725 flags=0x0(none) hashes=611+3 location=embedded 
Signature size=2359 
Info.plist=not bound 
TeamIdentifier=not set 
Sealed Resources version=2 rules=13 files=2 
Internal requirements count=1 size=104 
+ /usr/bin/codesign --verify '<build-path>/app_name' 
<build-path>/app_name: CSSMERR_TP_NOT_TRUSTED 
In architecture: x86_64 
+ spctl -a -v <build-path>/app_name 
<build-path>/app_name/: CSSMERR_TP_NOT_TRUSTED 

バイナリにコンパイルし、ゲートキーパー(私はCMakeのでXcodeプロジェクトを生成し、バイナリ署名するプロジェクトのプロパティを変更しても受け入れられているXCodeのが署名した - これは、しかし、私のための完全なバンドルを作っていませんが) 。私は署名のために同じcodesignコマンド(XCodeのログからコピー)を使用しました。

私が既に持っている:

  • 削除し、証明書をインポートし、
  • がチェック
  • がで倍増した証明書をチェックし
  • 、権限システムのデフォルトです、それはすべてのアプリケーションで使用することを許可しましたシステム。

私はqmake(Qt5.8)を使ってメイクファイルを作成します。 (macdeploymake後、) マイバンドル内容:

./Contents 
./Contents/_CodeSignature 
./Contents/_CodeSignature/CodeResources 
./Contents/Info.plist 
./Contents/MacOS 
./Contents/MacOS/app_name 
./Contents/PkgInfo 
./Contents/Resources 
./Contents/Resources/CS_icon.icns 
./Contents/Resources/empty.lproj 

私はOSXシエラの下で正しい署名のバイナリを作るにはどうすればよいですか?

+0

これはおそらくこれと関係があります。 'Info.plist = not bound'?このファイルをどのようにバインドできますか?すでにバンドルディレクトリにあります。 Xcodeの署名付きバイナリを調べている間、 'info'ファイルは' bounded 'です。 – szszsz

答えて

0

私は証明書を購入していたSSL再販業者に、自分のウェブサイトを更新していないことを明らかにしました。そこでは、証明書がOSXで動作すると主張していました。 AFAIRがリリースされるまでは10.9かもしれません。

最近のMacOSでコード署名してバイナリを使用する唯一の方法は、適切なターゲット証明書をAppleから直接購入することです(例えば、MacOSではIPhone/iOSのターゲットは動作しません。 時間を無駄にする前に、代理店のヘルプデスクがそのことを知りたいと思っています。

関連する問題