在钥匙串中找不到 Xamarin iOS 代码签名密钥

Daa*_*aan 9 code-signing visual-studio ios xamarin ios-provisioning

我正在尝试从我的 Windows 计算机在物理 iPhone 上调试我的 Xamarin.Forms 应用程序。

  • 我连接了 Mac,并将 iPhone 连接到该 Mac
  • 我有苹果开发者证书
  • 我已将设备链接到我的开发者帐户
  • 我使用 Visual Studio (17.0.5) 设置自动配置
  • 我下载了生成的证书并安装了它:
    • 在 Mac 上的系统钥匙串和登录钥匙串中
    • 在我运行 Visual Studio 的 Windows 机器上

当我尝试在 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 Studio\2022\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 Studio\2022\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 Studio\2022\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 Studio\2022\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 Studio\2022\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 ==========

Run Code Online (Sandbox Code Playgroud)

我不确定哪个设备缺少签名密钥,但我假设它是 iPhone,因为我在 Mac 上安装了证书。

如果是这个问题,如何将证书传输到 iPhone?我已经尝试过从 Mac 上的 Xcode 向 iPhone 部署一个空应用程序,但这不起作用。

小智 11

我花了一段时间才弄清楚这个问题。我必须将证书从我的 mac 导出到 .p12 文件,并将证书导入到 VS >工具>选项> Xamarin > Apple 帐户>查看详细信息>导入证书,然后选择 p12 文件并将其导入 VS 确保它显示在状态栏上有效。


Mak*_*lop 7

您必须在 Mac 上安装开发证书和开发配置文件。

最简单的方法是执行以下步骤:

  1. 下载并安装 Xcode,您可能已经完成了此操作。
  2. 使用您的苹果开发者帐户登录 Xcode:Xcode -> Preferences -> Account,使用+符号添加新帐户。
  3. 登录后,Xcode 将为您提供Download Manual Profiles在同一视图中的选项,单击此选项,Xcode 将按照承诺执行操作。可以为每个帐户和开发团队完成此操作。
  4. 调试愉快!

注意:在 Xcode 项目(*.xcworkspace、Native iOS、Flutter 等)中,最简单的选项是单击您的顶级应用程序项目(在 xcode 中)并选中Signing & Capabilities该[ ] Automatically Manage Signing选项。

您还可以从 AppStoreConnect 手动下载证书和配置文件。下载后,双击文件以安装证书和配置文件。这应该可行,但是,根据我的经验,这可能会导致重复的配置文件和其他奇怪的问题。使用 Visual Studio for Mac 时,有时可以通过重新启动 VS for Mac 或您的计算机来解决这些问题。如果问题仍然存在,请查看以下文件夹: ~/Library/MobileDevice/Provisioning Profiles此处列出了您安装的配置文件。Finder如果您选择配置文件,将向您显示包含详细信息的预览。删除重复的配置文件通常会有所帮助,这些配置文件具有不同的文件名,但配置文件详细信息相同。

  • 这是 100% 正确的,但只是一个注释......如果您有一段时间没有编译您的应用程序,那么证书和/或开发配置文件可能已过期,在这种情况下,您将必须删除并重新创建它们。另外,如果像我一样,自从上次编译应用程序以来,您已经转移到另一台 MacBook,您可能有一个未过期的证书,但您的钥匙串中没有私钥 - 在这种情况下,您还需要删除并重新创建证书和/或个人资料 (3认同)