macOSでのコード署名の無効化方法と解決策


まず、コード署名が必要ない場合は、CMakeプロジェクトで署名を無効化することができます。次の手順を実行してください。

  1. CMakeLists.txtファイルを開きます。

  2. project()ステートメントの前に、次の行を追加します:

    set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")
    set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO")

これにより、CMakeはXcodeプロジェクトを生成する際に、コード署名が無効化されます。

ただし、コード署名が必要な場合でも、一時的に無効化することができる場合があります。この場合、コード署名を無視するようにCMakeを設定します。以下に手順を示します。

  1. CMakeLists.txtファイルを開きます。

  2. project()ステートメントの前に、次の行を追加します:

    set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO")
  3. コード署名が必要なターゲットを定義するセクションで、次の行を追加します:

    set_target_properties(target_name PROPERTIES XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO")

この方法では、特定のターゲットに対してのみ、コード署名を無効化することができます。

エラーメッセージの例とその解決策をいくつか紹介します。

  1. エラーメッセージ: "CMake Error at CMakeLists.txt:XX (message): Code signing is required for product type 'Application' in SDK 'macOS 11.1'"

    解決策: 上記の手順に従ってコード署名を無効化するか、一時的に無視する方法を使用してください。

  2. エラーメッセージ: "codesign_allocate: error: signing with a development team..."

    解決策: 開発者チームに関連付けられた証明書が不足している可能性があります。適切な証明書を取得し、キーチェーンに追加してから再試行してください。

  3. エラーメッセージ: "codesign_allocate: error: no identity found"

    解決策: 適切な証明書がキーチェーンに存在しない可能性があります。証明書を作成し、キーチェーンに追加してから再試行してください。