【问题标题】:Xamarin iOS code signing key not found in keychain在钥匙串中找不到 Xamarin iOS 代码签名密钥
【发布时间】:2022-02-08 18:37:53
【问题描述】:

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

  • 我连接了一台 Mac,还有一部 iPhone 连接到那台 Mac
  • 我有 Apple 开发者证书
  • 我已将设备关联到我的开发者帐户
  • 我使用 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 ==========

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

如果是这个问题,我如何将证书转移到 iPhone?我已经尝试将 Mac 上的 Xcode 中的一个空应用程序部署到 iPhone 上,但没有成功。

【问题讨论】:

  • 这可能是VS for windows 的潜在问题,您可以使用Vs for Mac 部署到实际设备。

标签: ios visual-studio xamarin code-signing ios-provisioning


【解决方案1】:

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

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

  1. 下载并安装 Xcode,您可能已经这样做了。
  2. 使用您的 Apple 开发者帐户登录 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 将向您显示包含详细信息的预览。删除重复的配置文件通常会有所帮助,它们的文件名不同,但配置文件详细信息相同。

【讨论】:

    【解决方案2】:

    您可以通过从 .csproj 文件中的调试版本中删除标志来解决此问题。尝试点击此链接: Check

    【讨论】:

    • 解决方法在我的情况下不起作用,因为我没有部署到模拟器
    • 我的错。你可以试试这个:转到项目->“项目名称”选项->构建-> iOS捆绑签名->自定义权利-从文本框中删除Entitlements.plist->单击确定
    • 这会导致同样的错误
    【解决方案3】:

    可能是 VS 问题。请参考这个官方链接解决问题。 请确保您使用的是最新版本。 Check Here

    【讨论】:

    • 我正在使用 VS 17.0.5(当前最新)。我尝试了使用手动配置的解决方法,但没有任何区别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2019-10-09
    • 2020-01-23
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多