E0264 '"/usr/bin/codesign" ...' を実行できません
プラットフォーム アシスタント サーバーのエラー:インデックス への移動
Mac で codesign
を実行しましたが、エラーで終了しました。考えられる原因はいくつかありますが、まず以下を確認しなければなりません。
- 必要なデベロッパ証明書または配布用証明書が お使いの Mac にインストールされている ことと、プロビジョニング ページで、その証明書名を選択したことを、チェックします。以下の「一致する証明書がプラットフォーム アシスタント サーバーで見つからない」を参照してください。
- macOS の場合、指定した証明書名に一致する証明書が 1 つだけであること。以下の「指定された証明書名があいまい」を参照してください。
- エラー メッセージで "object file format unrecognized, invalid or unsuitable"(オブジェクト ファイルの形式が認識できないか、無効か、不適切)と指摘された場合は、Xcode コマンド ライン ツールがインストールされていることを確認します。
codesign
を実行する権限があること。以下の「codesign
に対する実行権限の取得」を参照してください。codesign
に渡したパラメータが正しいかどうか(コマンド ライン オプションは有効か、パラメータが必要な各コマンド ライン オプションの値が有効かどうか)。
目次
一致する証明書がプラットフォーム アシスタント サーバーで見つからない
エラー メッセージには以下の行が含まれる可能性があります。
- <構成した証明書名>: ID が見つかりません
この行が表示された場合は、codesign
の呼び出しの際に -s
コマンド ライン オプションで指定した文字列が、お使いの Mac にインストールされているどの証明書の名前とも一致しないことを意味します。
有効な証明書がお使いの Mac にインストールされていることを確かめるには、以下を行います。
- お使いの Mac で[キーチェーンアクセス]を開きます。
- [キーチェーン]の中の[ログイン]を選択します。
- [分類]の中の[自分の証明書]を選択します。
[キーチェーンアクセス]の画面中央のリストに、ターゲットとするプラットフォーム構成([macOS - アプリケーション ストア])に対応する有効な証明書が含まれているはずです。つまり、サードパーティ Mac デベロッパ アプリケーション証明書とサードパーティ Mac デベロッパ インストーラ証明書です。
これらの有効な証明書がない場合は、取得する必要があります。 「macOS アプリケーションのプロビジョニング」を参照してください。
有効な証明書はあるものの、codesign
の呼び出しの際に -s
コマンド ライン オプションで指定した文字列が、[macOS - アプリケーション ストア]の[キーチェーンアクセス]に一覧表示されるどの証明書の名前とも一致しない場合は、RAD Studio を適切な証明書名で構成する必要があります。「RAD Studio でのプロビジョニング プロファイルの構成」を参照してください。
指定された証明書名があいまい
エラー メッセージには以下の行が含まれる可能性があります。
- <構成した証明書名>: あいまいです (/Users/<ユーザー名>/Library/Keychains/login.keychain 内の "<証明書名 1>" と "<証明書名 2>" に一致します)
Mac 上で[キーチェーン アクセス]アプリケーションを開き、[自分の証明書]を選択し、有効期限が切れた証明書を削除します。有効期限が切れた証明書を削除した後に、証明書の一覧に同じ名前の証明書とコードが含まれていてはいけません。
macOS ターゲット プラットフォーム用アプリケーションにコード署名する場合、RAD Studio で、macOS - アプリケーション ストア をターゲットとしたプロビジョニングページを開き、サードパーティ Mac 証明書の完全名を指定します。たとえば「3rd Party Mac Developer Application: YourTeamName (AB345ZC79)」または「3rd Party Mac Developer Installer: YourTeamName (AB345ZC79)」のように指定します。
codesign
に対する実行権限の取得
codesign
を実行するには、/usr/bin/codesign
に対する実行権限が必要です。/usr/bin/codesign
に対する権限を確認するには、[ターミナル]ウィンドウを開いて以下を実行します。
$ ls -l /usr/bin/codesign
出力の冒頭が "-rwxr-xr-x
" という文字列になるはずです。出力がこれとは異なる文字列(たとえば -rwxr--r--
など)で始まる場合は、以下のコマンドを実行して、codesign
を実行する権限を取得します。
$ sudo chmod +x /usr/bin/codesign
ユーザーが操作をキャンセルした
このメッセージは、アプリケーションに署名する権限が codesign
に与えられなかったことを示します。RAD Studio がアプリケーションに署名するために使おうとしている証明書が、アクセスする前に確認が必要なものである場合、codesign
は配置中に[codesign はキーチェーンに含まれるキー <キー名> を使用して署名しようとしています。]というダイアログを表示して、ユーザーの許可を求めます。ユーザーは、操作を[拒否]、[許可]、または[常に許可]することができます。
アプリケーションが証明書を使用する権限をユーザーが手動で拒否しなくても、このエラーが発生する可能性があります。以下の手順でデベロッパ証明書のアクセス権を確認してください。
- macOS で[キーチェーン アクセス]を開きます。
- [自分の証明書]を選択し、確認したい証明書を展開します。
- 秘密鍵を右クリックし、[情報を見る]をクリックします。
- [アクセス制御]タブを開きます。
- どの項目が選択されているかを確認します。
- [アクセスを許可する前に確認]が選択されている場合、アプリケーションでこの証明書を使おうとするたびに macOS にダイアログが表示されます。
- [この項目の使用をすべてのアプリケーションに許可 この項目へのアクセスは制限されていません。]が選択されている場合、この証明書を使用するのに権限は必要ありません。
- [この項目の使用をすべてのアプリケーションに許可 この項目へのアクセスは制限されていません。]を選択します。