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

w8biq8rn  于 2022-11-17  发布在  iOS
关注(0)|答案(6)|浏览(275)

我试图在我的Windows机器上调试我的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,但没有成功。

6tr1vspr

6tr1vspr1#

您必须在Mac上同时安装开发证书和开发预置描述文件。
最简单的方法是执行以下步骤:
1.下载并安装Xcode,您可能已经这样做了。
1.使用Apple开发者帐户登录Xcode:Xcode -> Preferences -> Account,使用+符号添加新帐户。
1.登录后,Xcode将在同一视图中给予Download Manual Profiles选项,单击此选项,Xcode将按承诺执行。每个帐户和开发团队都可以执行此操作。
1.调试愉快!

  • 注:在Xcode项目(*.xcworkspace、原生iOS、Flutter等)中,最简单的选项是点击顶级应用项目(在xcode中),然后在Signing & Capabilities下选中[ ] Automatically Manage Signing选项。*

您也可以从AppStoreConnect手动下载凭证和布建设定档。下载后,按两下档案以安装凭证和设定档。这应该可以运作,不过,根据我的经验,这可能会导致重复的设定档和其他奇怪的问题。使用Visual Studio for Mac时,有时候可以透过重新启动VS for Mac或您的计算机来解决这些问题。如果问题持续发生,请查看下列文件夹:~/Library/MobileDevice/Provisioning Profiles此处列出了您已安装的配置文件。如果您选择预置配置文件,Finder将向您显示包含详细信息的预览。删除重复的配置文件通常会有所帮助,因为这些配置文件的文件名不同,但详细信息相同。

ibps3vxo

ibps3vxo2#

您可以从.csproj档案中的两柴组建移除旗标,以解决此问题。请尝试使用此链接:Check

cclgggtu

cclgggtu3#

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

5vf7fwbs

5vf7fwbs4#

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

tzdcorbm

tzdcorbm5#

我使用的是Maui,在我的例子中,这个错误后面跟着一句话“请从ios捆绑包签名页面启用自动供应”。
因此,在解决方案资源管理器上右键单击您的项目,单击“属性”,展开iOS节点,然后选择“捆绑签名”。
在“方案”标题下,您会发现一个下拉列表;将“手动资源调配”更改为“自动资源调配”即可。

jgwigjjp

jgwigjjp6#

有一个类似的问题,但对于一个现有的项目有相同的错误。预置描述文件是新的,因为证书已过期。但新的有效描述文件在钥匙串中。
不管怎样,对我起作用的是在VS-〉工具-〉选项-〉Xamarin-〉iOS设置中关闭热重启
看起来它不知何故一直保存着旧证书。线索是在我重新连接时删除它们后,它们不断在钥匙链中重新出现。
可能不会帮助OP,但可能会帮助其他有类似问题的人。

相关问题