次の方法で共有


iOS のビルドが失敗して "no valid iPhone code signing keys found in keychain" (キーチェーンに有効な iPhone コード署名キーがありません) と表示されるのはなぜですか。

エラーの原因

このエラー メッセージは、問題のプロジェクトによって有効なコード署名資格情報が検索されて、見つからない場合に発生します。 コード署名は、テスト、物理 iOS デバイスへの配置、さらにアドホック ビルドと App Store ビルドに必要です。

これは、Windows 上の Visual Studio からビルドしていて、配布プロファイルと証明書を使用してビルドしようとしているが、リモート デバイス、または Mac ビルド ホストに接続されている物理デバイスがターゲット デバイスとして選択されていない場合に発生する可能性があります。 ローカル デバイスまたは Windows PC に接続されているデバイスが選択されていると、ビルドは Mac にインストールされている場合でも配布証明書を見つけることができません。

デバイスのプロビジョニング

以前に iOS デバイスをプロビジョニングしたことがない場合は、詳しい手順について、デバイス プロビジョニングのガイドを参照してください。

iOS Simulator 使用時のバグ

Note

この問題は、最新バージョンの Xamarin for Visual Studio では解決されています。 ただし、ソフトウェアの最新のバージョンで問題が発生している場合は、すべてのバージョン管理情報およびすべてのビルド ログ出力と共に新しいバグを提出してください。

Xamarin.Visual Studio 3.11 には、Xamarin.Forms テンプレートの iOS プロジェクトにより、Simulator ビルドに codesign Entitlements.plist が追加される (実質的に Simulator を使用してテストがブロックされる) というバグがありました。

修正方法

この問題を回避するには、.csproj ファイル内のデバッグ ビルドから <CodesignEntitlements> フラグを削除します。 このことは次のように実行できます。

警告

.csproj ファイルのエラーによってプロジェクトが中断される可能性があるため、これを試みる前にファイルをバックアップしておくことをお勧めします。

  1. ソリューション ウィンドウで iOS プロジェクトを右クリックし、[プロジェクトのアンロード] を選択します
  2. プロジェクトを再度右クリックし、[[プロジェクト名].csproj の編集] を選択します。
  3. Debug PropertyGroups を見つけます。次のようなフラグで始まります。
    • デバッグ: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    • リリース: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
  4. シミュレーターを使用する各ビルドで、次のプロパティを削除するか、コメント アウトします: <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
  5. プロジェクトを再読み込みすると、シミュレーターに展開できるようになります。

次のステップ

詳細については、お問い合わせください。または、上記の情報を利用してもこの問題が解決しない場合は、Xamarin で利用できるサポート オプションに関する記事で、連絡オプション、提案、および必要に応じて新しいバグを登録する方法を参照してください。