既存の質問に目を通しましたが、問題を解決したものはありません(証明書の再作成など)。アプリ内に実行可能ファイル、フォルダー、フレームワークがほとんどないアプリを作成しました。 codesign -s "our identity"を実行しようとすると、my.appは常にIDを検出しません。誰かがこれのステップバイステップのプロセスを与えることができます。
codesign -s "Developer ID Application: Sai***** (123123123J)" out/Release/Sai.app
エラー
Developer ID Application: Sai****** (123123123J): no identity found,
「開発者IDアプリケーション」とシリアル番号を削除しようとしましたが、すべて同じエラーが発生します
これらのヘルプを探しています lines
ありがとうございました
私はApple開発コード署名のためにこれをしませんでしたが、そのような問題をデバッグするのに役立ついくつかの貴重な内部がまだあると思います。違いは、取得中に独自の証明書を作成したことですAppleからの1つ。
証明書の信頼性を確認します。コード署名に対して信頼されている必要があります(キーチェーンアクセスの証明書ビューの信頼セクションの最後から3番目であるヨセミテ上)。コード署名のために、証明書がログインキーチェーンに含まれている必要があることに注意してください。システムキーチェーンに必要です。
拡張機能の目的である「コード署名」が欠落しているため、最初は証明書がキーチェーンへのコード署名で知られていませんでした。キーチェーンを調べて証明書をダブルクリックすると、これを見つけることができます:
私はそれを修正しました(Appleは証明書を提供します。拡張子はそこにあるはずです)
次に、証明書をキーチェーンからデスクトップにドラッグ&ドロップして、〜/ Desktop/gdb-cert.cerを作成した後、証明書を信頼された署名証明書に追加しました(-dと-r trustRootを省略できることに注意してください:
$ Sudo security add-trusted-cert -d -r trustRoot -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/gdb-cert.cer
これは少しトリッキーでした。なぜなら、私はいくつかのインターネットの投稿に誤解されていて、マニュアルページを見ていなかったからです。 add-trust( https://llvm.org/svn/llvm-project/lldb/trunk/docs/code-signing.txt )を使用する必要があると言う人もいました。ひどいのは、コマンドは成功したが、本来すべきことをしなかったことでした。
その後、次のように信頼できる証明書で新しい証明書を見つけました。
$ security find-identity -p codesigning
Policy: Code Signing
Matching identities
1) E7419032D4..... "Mac Developer: FirstName LastName (K2Q869SWUE)" (CSSMERR_TP_CERT_EXPIRED)
2) ACD43B6... "gdb-cert"
2 identities found
Valid identities only
1) ACD43... "gdb-cert"
1 valid identities found
私の場合、Apple certは期限切れですが、gdbに署名するために使用していたものはそうではありませんでした(私は自分で作成しました)。また、ポリシーの名前は「security add-trusted-cert」(-p codeSign)および「security find-identity」コマンド(-p codesigning)。その後、gdbに署名しましたが、常に次のようになりました。
$ codesign --sign gdb-cert.cer --keychain ~/Library/Keychains/login.keychain `which gdb`
gdb-cert.cer: no identity found
証明書ファイルのファイル名を--signオプションに指定する必要があるという印象を受けていましたが、実際には、提供する必要があり、トラストストアにある必要がある証明書のCNでした。キーチェーンの証明書をダブルクリックすると、ここでCNを見つけることができます。
または、上記の「security find-identity -p codesigning」の出力で。それから私は署名に進み、それに適切なキーチェーンを与えなければなりませんでした。あなたの場合、これは〜/ Library/Keychains/login.keychain、私の場合はSystem.keychainでなければなりません:
codesign -s gdb-cert --keychain /Library/Keychains/System.keychain `which gdb`
それは私に働くgdbを与え、署名されたアプリケーションを与えるはずです。
私もこれに問題がありました。コード署名IDがキーチェーンにあることを再確認してください。-sの後の名前の代わりにSHA-1フィンガープリントを使用することを検討してください。
SHA-1フィンガープリントを見つけるには、Keychain Access
を開き、Developer ID Application: FOO
証明書を選択して、Get Infoを選択します。ここから、Fingerprintsに達するまで情報の下部までスクロールします。ここのSHA-1フィンガープリントはコピーでき、すべてのスペースを削除する必要がありますが、その後、コード署名ステートメントの-s
の後に配置するのに適した40文字の識別子があります。
それでもキーを見つけるのに問題がある場合は、ターミナルから次のことを試してください。
certtool y | grep Developer\ ID
Developer ID Application
にCommon Name
があるものを探し、証明書が実際にターミナルからアクセス可能なキーチェーンにあることを確認します。応答に何も表示されない場合は、Terminal
セッションで資格情報を含むキーチェーンが利用できないことを示しています。これには、キーチェーンがロックされている、別のユーザーとして実行されているシェル、異なる権限(Sudo
など)でコマンドを実行しているなどが含まれます。
上記のコマンドを実行した後、少なくとも次のものが必要です。
Developer ID Application: <your company name>
Developer ID Installer: <your company name>
Developer ID Certification Authority
3つすべてを持っていない場合は、不足している要素をダウンロードしてください。現在、インストーラをビルドするためにneedを使用することはできませんが、インストールしても問題はありません。アプリケーションおよびインストーラー要素は、 Appleのデベロッパーサイト の証明書、識別子、プロファイルタブのMac証明書セクションからダウンロードできます。失効していないリスティングがそこにあるはずです。有効期限が切れたリスティングもあります。キーチェーンに証明書をインストールするには:
開発者ID証明機関はXcodeによってインストールされているはずですが、インストールされていない場合は、自分でインストールできます。 デベロッパーID機関 から個別にダウンロードするか、証明書タブの+リンクをクリックして、下部のリンクを使用して証明書をダウンロードする必要があります。
これは、いくつかの署名ツールの基礎となるApple Worldwide Developer Relations Certification Authorityを持っていることを確認する良い機会でもあります。 XcodeインストーラーによってSystemキーチェーンにインストールする必要があり、上記のCertificatesタブの+リンクまたは Apple WWDR CA 。
Appleの App Distribution Guide によると、証明書とキーのそれぞれに適切な特定のキーチェーンがあります。
Xcodeはキーチェーンを自動的に操作し、プロファイルが変更されるといくつかの証明書が定期的に再発行されるため(開発者IDではなく、複数年の証明書を持ち、プロファイルを必要としないため)、不要な伝播が発生する可能性がありますキーチェーン内の証明書が混乱する可能性があります。 Xcodeの混乱を招く可能性があるため、有効期限が切れたらこれらを削除することをお勧めします。
[〜#〜]警告[〜#〜]
やる事:
答えは最終的に非常に簡単でした。秘密鍵がありませんでした。このため、証明書を取り消して、開発者プログラムの手順に従いました(特に、プロセス中にCSR証明書を作成しました。証明書を取り消さない限り、何度か取得しませんでした)。
として
certtool y | grep "Developer ID Application: xxxx"
結果を表示できませんでした。目的のキーチェーンへのアクセスの問題だと思います。最初に確認したのは、キーチェーン自体の任意のアプリケーションからプライベートキーにアクセスできることでした。その後、k=/Users/myUser/Library/Keychains/login.keychain
オプションcerttoolコマンドで、これが成功したので、同じことをしました
codesign --keychain /Users/myUser/Library/Keychains/login.keychain --force --verbose -s "Developer ID Application: xxxx"