在钥匙串中找不到 Xamarin iOS 代码签名密钥
Xamarin iOS code signing key not found in keychain
我正在尝试从我的 windows 机器上在物理 iPhone 上调试我的 Xamarin.Forms 应用程序。
- 我有一个 Mac 连接,还有一个 iPhone 连接到那个 Mac
- 我有 Apple 开发者证书
- 我已将设备关联到我的开发者帐户
- 我使用 Visual Studio (17.0.5)
设置了自动配置
- 我下载了生成的证书,并安装了它:
- 在系统钥匙串和登录钥匙串Mac上
- 在我的 windows 机器上 运行 Visual Studio
当我尝试在 Debug|iPhone 中部署我的应用程序时,出现以下错误:
iOS code signing key 'Apple Development: John Doe (5L4565FZ2L)' not found in keychain.
Visual Studio 中构建输出的更多详细信息:
2>Using "DetectSigningIdentity" task from assembly "C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\..\iOS\Xamarin.iOS.Tasks.dll".
2>Task "DetectSigningIdentity"
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Started
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Initializing
2> [xma]: Trying to get a Build Connection for Session '6b535ab5f3c9b550fa521b36f236660807d516f929527c4e1cb2a3ecca9ec40d': Xamarin.Messaging.Build.Client.BuildConnection.6b535ab5f3c9b550fa521b36f236660807d516f929527c4e1cb2a3ecca9ec40d, Lifetime: AppDomain
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Initialized
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - There's no available inputs to copy to the Mac
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Serializing intputs
2> DetectSigningIdentity: 2022-02-06T17:49:30.9079268+01:00 - Executing
2> [xma]: Starting remote task execution for 'Writeful.Mobile.iOS': Xamarin.iOS.Tasks.DetectSigningIdentity
2> [xma]: Sending Request Xamarin.Messaging.Build.Contracts.ExecuteTaskMessage to topic xvs/build/execute-task/Writeful.Mobile.iOS/6b535ab002fDetectSigningIdentity
2> [xma]: Received Response of Xamarin.Messaging.Build.Contracts.ExecuteTaskMessage to topic build6b535ab5f3c9b550fa521b36f236660807d516f929527c4e1cb2a3ecca9ec40d47080johndoe/+/xvs/build/execute-task/Writeful.Mobile.iOS/6b535ab002fDetectSigningIdentity
2> DetectSigningIdentity: 2022-02-06T17:49:30.9499278+01:00 - Logging messages
2>C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error : iOS code signing key 'Apple Development: John Doe (5L4565FZ2L)' not found in keychain.
2>C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error :
2> DetectSigningIdentity: 2022-02-06T17:49:30.9499278+01:00 - Finished
2>Done executing task "DetectSigningIdentity" -- FAILED.
2>Done building target "_DetectSigningIdentity" in project "Writeful.Mobile.iOS.csproj" -- FAILED.
2>
2>Build FAILED.
2>
2>"C:\Users\johndoe\source\repos\johndoe\writeful-app\Writeful.Mobile.iOS\Writeful.Mobile.iOS.csproj" (Build;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
2>(_DetectSigningIdentity target) ->
2> C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error : iOS code signing key 'Apple Development: John Doe (5L4565FZ2L)' not found in keychain.
2>C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error :
2>
2> 0 Warning(s)
2> 1 Error(s)
2>
2>Time Elapsed 00:00:01.23
========== Build: 1 succeeded, 1 failed, 21 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========
我不确定哪个设备缺少签名密钥,但我认为它是 iPhone,因为我在 Mac.
上安装了证书
如果这是问题所在,我该如何将证书转移到 iPhone?我已经尝试从 Mac 上的 Xcode 部署一个空应用程序到 iPhone,但这没有用。
您可以通过从 .csproj 文件的调试版本中删除标志来解决此问题。尝试遵循此 link :
Check
可能是VS的问题。请参考此官方 Link 问题已解决。
请确保您使用的是最新版本。 Check Here
您必须在 Mac 上同时安装开发证书和开发配置文件。
执行此操作的最简单方法是执行以下步骤:
- 下载并安装 Xcode,您可能已经完成了。
- 使用您的苹果开发者帐户登录 Xcode:
Xcode -> Preferences -> Account
,使用 +
登录添加新帐户。
- 登录后 Xcode 将在同一视图中为您提供
Download Manual Profiles
的选项,单击此选项,Xcode 将按承诺执行。这可以为每个帐户和开发团队完成。
- 调试愉快!
注:
在 Xcode 项目(*.xcworkspace
、原生 iOS、Flutter 等)中,最简单的选择是单击您的顶级应用程序项目(在 xcode 中)并在 Signing & Capabilities
勾选[ ] Automatically Manage Signing
选项。
您还可以从 AppStoreConnect 手动下载证书和配置文件。下载后,双击文件以安装证书和配置文件。这应该可行,但是,根据我的经验,这可能会导致重复的配置文件和其他奇怪的问题。当对 Mac 使用 Visual Studio 时,有时可以通过为 Mac 或您的计算机重新启动 VS 来解决这些问题。如果问题仍然存在,请查看以下文件夹:
~/Library/MobileDevice/Provisioning Profiles
这里列出了您安装的配置文件。如果您 select 配置文件,Finder
将向您显示包含详细信息的预览。删除重复的配置文件通常会有帮助,它们具有不同的文件名但相同的配置文件详细信息。
我正在尝试从我的 windows 机器上在物理 iPhone 上调试我的 Xamarin.Forms 应用程序。
- 我有一个 Mac 连接,还有一个 iPhone 连接到那个 Mac
- 我有 Apple 开发者证书
- 我已将设备关联到我的开发者帐户
- 我使用 Visual Studio (17.0.5) 设置了自动配置
- 我下载了生成的证书,并安装了它:
- 在系统钥匙串和登录钥匙串Mac上
- 在我的 windows 机器上 运行 Visual Studio
当我尝试在 Debug|iPhone 中部署我的应用程序时,出现以下错误:
iOS code signing key 'Apple Development: John Doe (5L4565FZ2L)' not found in keychain.
Visual Studio 中构建输出的更多详细信息:
2>Using "DetectSigningIdentity" task from assembly "C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\..\iOS\Xamarin.iOS.Tasks.dll".
2>Task "DetectSigningIdentity"
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Started
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Initializing
2> [xma]: Trying to get a Build Connection for Session '6b535ab5f3c9b550fa521b36f236660807d516f929527c4e1cb2a3ecca9ec40d': Xamarin.Messaging.Build.Client.BuildConnection.6b535ab5f3c9b550fa521b36f236660807d516f929527c4e1cb2a3ecca9ec40d, Lifetime: AppDomain
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Initialized
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - There's no available inputs to copy to the Mac
2> DetectSigningIdentity: 2022-02-06T17:49:30.9039262+01:00 - Serializing intputs
2> DetectSigningIdentity: 2022-02-06T17:49:30.9079268+01:00 - Executing
2> [xma]: Starting remote task execution for 'Writeful.Mobile.iOS': Xamarin.iOS.Tasks.DetectSigningIdentity
2> [xma]: Sending Request Xamarin.Messaging.Build.Contracts.ExecuteTaskMessage to topic xvs/build/execute-task/Writeful.Mobile.iOS/6b535ab002fDetectSigningIdentity
2> [xma]: Received Response of Xamarin.Messaging.Build.Contracts.ExecuteTaskMessage to topic build6b535ab5f3c9b550fa521b36f236660807d516f929527c4e1cb2a3ecca9ec40d47080johndoe/+/xvs/build/execute-task/Writeful.Mobile.iOS/6b535ab002fDetectSigningIdentity
2> DetectSigningIdentity: 2022-02-06T17:49:30.9499278+01:00 - Logging messages
2>C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error : iOS code signing key 'Apple Development: John Doe (5L4565FZ2L)' not found in keychain.
2>C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error :
2> DetectSigningIdentity: 2022-02-06T17:49:30.9499278+01:00 - Finished
2>Done executing task "DetectSigningIdentity" -- FAILED.
2>Done building target "_DetectSigningIdentity" in project "Writeful.Mobile.iOS.csproj" -- FAILED.
2>
2>Build FAILED.
2>
2>"C:\Users\johndoe\source\repos\johndoe\writeful-app\Writeful.Mobile.iOS\Writeful.Mobile.iOS.csproj" (Build;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
2>(_DetectSigningIdentity target) ->
2> C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error : iOS code signing key 'Apple Development: John Doe (5L4565FZ2L)' not found in keychain.
2>C:\Program Files\Microsoft Visual Studio22\Community\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1566,3): error :
2>
2> 0 Warning(s)
2> 1 Error(s)
2>
2>Time Elapsed 00:00:01.23
========== Build: 1 succeeded, 1 failed, 21 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========
我不确定哪个设备缺少签名密钥,但我认为它是 iPhone,因为我在 Mac.
上安装了证书如果这是问题所在,我该如何将证书转移到 iPhone?我已经尝试从 Mac 上的 Xcode 部署一个空应用程序到 iPhone,但这没有用。
您可以通过从 .csproj 文件的调试版本中删除标志来解决此问题。尝试遵循此 link : Check
可能是VS的问题。请参考此官方 Link 问题已解决。 请确保您使用的是最新版本。 Check Here
您必须在 Mac 上同时安装开发证书和开发配置文件。
执行此操作的最简单方法是执行以下步骤:
- 下载并安装 Xcode,您可能已经完成了。
- 使用您的苹果开发者帐户登录 Xcode:
Xcode -> Preferences -> Account
,使用+
登录添加新帐户。 - 登录后 Xcode 将在同一视图中为您提供
Download Manual Profiles
的选项,单击此选项,Xcode 将按承诺执行。这可以为每个帐户和开发团队完成。 - 调试愉快!
注:
在 Xcode 项目(*.xcworkspace
、原生 iOS、Flutter 等)中,最简单的选择是单击您的顶级应用程序项目(在 xcode 中)并在 Signing & Capabilities
勾选[ ] Automatically Manage Signing
选项。
您还可以从 AppStoreConnect 手动下载证书和配置文件。下载后,双击文件以安装证书和配置文件。这应该可行,但是,根据我的经验,这可能会导致重复的配置文件和其他奇怪的问题。当对 Mac 使用 Visual Studio 时,有时可以通过为 Mac 或您的计算机重新启动 VS 来解决这些问题。如果问题仍然存在,请查看以下文件夹:
~/Library/MobileDevice/Provisioning Profiles
这里列出了您安装的配置文件。如果您 select 配置文件,Finder
将向您显示包含详细信息的预览。删除重复的配置文件通常会有帮助,它们具有不同的文件名但相同的配置文件详细信息。