デバイスでアプリをテストするために、新しいプロビジョニングプロファイルをXcodeに追加しようとしています。私が従った手順は次のとおりです。
すべての証明書とプロビジョニングプロファイルを削除しました
作成/追加IOS開発証明書
Add My IOS Device Online
作成IOSプロビジョニングプロファイル
追加IOSプロビジョニングプロファイル
クリーンアプリ
ビルドしてアプリを実行
ビルド設定でコデザインndプロビジョニングプロファイルを設定する
多くのグーグル>成功しない
ここに私が得るエラーがあります:
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
キーチェーンアクセスを開き、ファイルメニューですべてのキーチェーンをロックを選択します。
次に、Xcodeに戻ってクリーニングして再構築します。キーチェーンのロックを解除するために、もう一度パスワードの入力を求められます。
この後、他にコンパイルの問題がないと仮定すると、成功します!
コード署名メカニズムのバグのようです。Macを再起動すると問題が解決するはずです
これは、ログインキーチェーンがロックされている場合に発生します。ログインキーチェーンのロックを解除するには、次を実行します。
security unlock-keychain login.keychain
次に、ビルドまたはコード署名操作を再試行します。問題のエラーコードは Appleのドキュメントに記載されている 内部エラーであるため、他のケースでも発生する可能性があります。
High Sierra
/Xcode 9.4.1
で同じ問題が発生した場合、署名の試みはすべてerrSecInternalComponent
で終了しました
代わりに:
mac端末でcodesignコマンドを実行し、キーへの/ usr/bin/codesignアクセスを「常に許可」する
Ssh/CIから署名しようとする場合も実行する必要があります
security unlock-keychain login.keychain
アプリのバンドルに署名する前に
同じ問題に遭遇しました。macOSを再起動すると動作します。
中国では、開発者の間で格言があります。
小さな問題、再起動のみ。大きな問題は再インストールする必要があります。
時々、上記のことわざが大いに役立つでしょう!
他の人に役立つ場合、macOSマシンへのsshセッションで実行しているため、errSecInternalComponent
でcodesign
エラーが発生しました。 macOSマシン自体のターミナルウィンドウから同じコマンドを実行すると機能しました。
おそらく、これはcodesign
がログインキーチェーンからプライベートキーにアクセスする必要があるためです。
ランニング security unlock-keychain login.keychain
( cbrackenの答え で説明されているように)同じセッションからも機能するはずです。
Ssh runコマンドから署名しようとする場合:
security unlock-keychain login.keychain
アプリのバンドルに署名する前に
またはUIから
キーアクセス制御を「すべてのアプリケーションにこのアイテムへのアクセスを許可する」に更新します
@Equilibriumおよび@Jon McClungへのThx
security unlock-keychain login.keychain
とログインパスワードが機能しませんでした。それで私はリブートし、Xcodeを再び実行しただけで機能しました。コマンドの実行も同様に機能します。奇妙な問題。
Sshセッションからではなく、mac端末を使用して一度試してください
security unlock-keychain login.keychain
プロンプトのダイアログで常に許可を選択します。そして、リモートセッションでxcodebuildを実行できます。
コメントの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