web-dev-qa-db-ja.com

Xcodeコマンド/ usr / bin / codesignが終了コード1で失敗しました:errSecInternalComponent

デバイスでアプリをテストするために、新しいプロビジョニングプロファイルをXcodeに追加しようとしています。私が従った手順は次のとおりです。

  1. すべての証明書とプロビジョニングプロファイルを削除しました

  2. 作成/追加IOS開発証明書

  3. Add My IOS Device Online

  4. 作成IOSプロビジョニングプロファイル

  5. 追加IOSプロビジョニングプロファイル

  6. クリーンアプリ

  7. ビルドしてアプリを実行

  8. ビルド設定でコデザインndプロビジョニングプロファイルを設定する

  9. 多くのグーグル>成功しない

ここに私が得るエラーがあります:

CSSM_SignData returned: 800108E6
/Users/alexpelletier/Library/Developer/Xcode/DerivedData/MyExpense-efnqzvoqwngzcmazaotyalepiice/Build/Products/Debug-iphoneos/MyExpense.app:     errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1
69
Alex Pelletier

キーチェーンアクセスを開き、ファイルメニューですべてのキーチェーンをロックを選択します。

次に、Xcodeに戻ってクリーニングして再構築します。キーチェーンのロックを解除するために、もう一度パスワードの入力を求められます。

この後、他にコンパイルの問題がないと仮定すると、成功します!

144
Mohit Manhas

コード署名メカニズムのバグのようです。Macを再起動すると問題が解決するはずです

77
sigabrt

これは、ログインキーチェーンがロックされている場合に発生します。ログインキーチェーンのロックを解除するには、次を実行します。

security unlock-keychain login.keychain

次に、ビルドまたはコード署名操作を再試行します。問題のエラーコードは Appleのドキュメントに記載されている 内部エラーであるため、他のケースでも発生する可能性があります。

55
cbracken

High Sierra/Xcode 9.4.1で同じ問題が発生した場合、署名の試みはすべてerrSecInternalComponentで終了しました

    • キーチェーンアクセスに移動
    • ログインキーチェーンに移動します
    • 「マイ証明書」カテゴリを選択します
    • 署名する証明書を見つけて展開し、キーを表示します。
    • キーをダブルクリックします
    • [アクセス制御]タブに移動します。
    • キーアクセス制御を「すべてのアプリケーションにこのアイテムへのアクセスを許可する」に更新します

代わりに:

mac端末でcodesignコマンドを実行し、キーへの/ usr/bin/codesignアクセスを「常に許可」する

  1. Ssh/CIから署名しようとする場合も実行する必要があります

    security unlock-keychain login.keychain
    

    アプリのバンドルに署名する前に

21
Equilibrium

同じ問題に遭遇しました。macOSを再起動すると動作します。

中国では、開発者の間で格言があります。

小さな問題、再起動のみ。大きな問題は再インストールする必要があります。

時々、上記のことわざが大いに役立つでしょう!

15
ifeegoo

他の人に役立つ場合、macOSマシンへのsshセッションで実行しているため、errSecInternalComponentcodesignエラーが発生しました。 macOSマシン自体のターミナルウィンドウから同じコマンドを実行すると機能しました。

おそらく、これはcodesignがログインキーチェーンからプライベートキーにアクセスする必要があるためです。

ランニング security unlock-keychain login.keychaincbrackenの答え で説明されているように)同じセッションからも機能するはずです。

6
jamesdlin

Ssh runコマンドから署名しようとする場合:

security unlock-keychain login.keychain

アプリのバンドルに署名する前に

またはUIから

キーアクセス制御を「すべてのアプリケーションにこのアイテムへのアクセスを許可する」に更新します

@Equilibriumおよび@Jon McClungへのThx

2
Stas S

security unlock-keychain login.keychainとログインパスワードが機能しませんでした。それで私はリブートし、Xcodeを再び実行しただけで機能しました。コマンドの実行も同様に機能します。奇妙な問題。

2
sunapi386

私は同じ問題を抱えていました問題はアプリのコード署名にあります。

Opened the developer account and accepted the updated agreement and it worked.  

enter image description here

1
sahiljain

Sshセッションからではなく、mac端末を使用して一度試してください

security unlock-keychain login.keychain

プロンプトのダイアログで常に許可を選択します。そして、リモートセッションでxcodebuildを実行できます。

1
Felix

コメントの1つで@Equilibriumが指摘したように、コマンドラインenvを使用している場合。 Jenkins(私の場合)のように、ソリューションで言及されているsecurity-unlockコマンドにパスワードを渡す必要があるかもしれません。

したがって、使用する代わりに、

security unlock-keychain login.keychain

つかいます:

security unlock-keychain -p <login-keychain-password> <path-to-login-keychain>

ログインキーチェーンへのパスは$ HOME/Library/Keychains/login.keychain(私の場合)または単にlogin.keychain

0
Mohit Tater