키 집합에 유효한 iPhone 코드 서명 키가 없다는 오류와 함께 iOS 빌드에 실패하는 이유는 무엇인가요?Why does my iOS build fail with: no valid iPhone code signing keys found in keychain?

오류의 원인Cause of the error

이 오류 메시지는 해당 프로젝트가 유효한 코드 서명 자격 증명을 찾고 있지만 찾을 수 없는 경우에 발생 합니다.This error message occurs when the project in question is looking for valid code-signing credentials but are unable to find them. 물리적 iOS 장치에서 테스트 및 배포에는 코드 서명이 필요 합니다. 임시 & App store 빌드도 있습니다.Code signing is required for testing and deployments on physical iOS devices; as well as Ad-hoc & App store builds.

프로 비전 장치Provisioning Devices

이전에 iOS 장치를 프로 비전 하지 않은 경우 다음 가이드에서 전체 단계별 프로세스를 안내 합니다. 장치 프로 비전 가이드If you haven't provisioned an iOS device before, the following guide will take you through the full step-by-step process: Device Provisioning Guide

IOS 시뮬레이터를 사용 하는 경우 버그Bug when using iOS Simulator

참고

이 문제는 최신 버전의 Visual Studio 용 Xamarin에서 해결 되었습니다.This issue has been resolved in recent versions of Xamarin for Visual Studio. 그러나 최신 버전의 소프트웨어에서 문제가 발생 하는 경우 전체 버전 정보 및 전체 빌드 로그 출력을 사용 하 여 새 버그 를 작성 하세요.However, if the issue occurs on the latest version of the software, please file a new bug with your full versioning information and full build log output.

Xamarin. Visual Studio 3.11에 버그가 있습니다 .이로 인해 Xamarin.ios 템플릿에서 iOS 프로젝트를 info.plist 하 여 시뮬레이터 빌드에 추가 했습니다. 시뮬레이터를 사용 하 여 테스트를 효과적으로 차단 합니다.There was a bug in Xamarin.Visual Studio 3.11 which caused the iOS project in a Xamarin.Forms template to add the codesign Entitlements.plist to Simulator builds; effectively blocking testing using the Simulator.

해결 방법How to fix

.Csproj 파일의 디버그 빌드에서 <CodesignEntitlements> 플래그를 제거 하 여 문제를 해결할 수 있습니다.You can workaround the issue by removing the <CodesignEntitlements> flag from the debug builds in the .csproj file. 다음과 같이이 작업을 수행할 수 있습니다.You can do this as follows:

경고

.Csproj 파일의 오류는 프로젝트를 중단할 수 있으므로이를 시도 하기 전에 파일을 백업 하는 것이 좋습니다.Errors in .csproj files can break your project, so it's a good idea to backup your files before attempting this.

  1. 솔루션 창에서 iOS 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 프로젝트 언로드 를 선택 합니다.Right click the iOS project in the solution pane and select Unload Project
  2. 프로젝트를 다시 마우스 오른쪽 단추로 클릭 하 고 편집 [ProjectName] .csproj를 선택 합니다.Right click the project again and select Edit [ProjectName].csproj
  3. 디버그 PropertyGroups를 찾으려면 다음과 같이 플래그를 사용 하 여 시작 해야 합니다.Locate the Debug PropertyGroups, they should start with flags that look like this:
    • 디버그: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">Debug: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    • 릴리스: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">Release: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
  4. 시뮬레이터를 사용 하는 각 빌드에서 다음 속성을 삭제 하거나 주석으로 처리 합니다. <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>In each of the builds that use the simulator, delete or comment out the following property: <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
  5. 프로젝트를 다시 로드 하 고 시뮬레이터에 배포할 수 있어야 합니다.Reload the project and you should be able to deploy to the simulator.

다음 단계Next Steps

추가 지원이 필요 하면 microsoft에 문의 하거나, 위의 정보를 사용한 후에도이 문제가 계속 발생 하는 경우 Xamarin에 사용할 수 있는 지원 옵션 을 참조 하세요. 연락처 옵션, 제안 사항 및 필요한 경우 새 버그를 제출 하는 방법에 대 한 자세한 내용은을 참조 하세요. .For further assistance, to contact us, or if this issue remains even after utilizing the above information, please see What support options are available for Xamarin? for information on contact options, suggestions, as well as how to file a new bug if needed.