我试图在我的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,但没有成功。
6条答案
按热度按时间6tr1vspr1#
您必须在Mac上同时安装开发证书和开发预置描述文件。
最简单的方法是执行以下步骤:
1.下载并安装Xcode,您可能已经这样做了。
1.使用Apple开发者帐户登录Xcode:
Xcode -> Preferences -> Account
,使用+
符号添加新帐户。1.登录后,Xcode将在同一视图中给予
Download Manual Profiles
选项,单击此选项,Xcode将按承诺执行。每个帐户和开发团队都可以执行此操作。1.调试愉快!
*.xcworkspace
、原生iOS、Flutter等)中,最简单的选项是点击顶级应用项目(在xcode中),然后在Signing & Capabilities
下选中[ ] Automatically Manage Signing
选项。*您也可以从AppStoreConnect手动下载凭证和布建设定档。下载后,按两下档案以安装凭证和设定档。这应该可以运作,不过,根据我的经验,这可能会导致重复的设定档和其他奇怪的问题。使用Visual Studio for Mac时,有时候可以透过重新启动VS for Mac或您的计算机来解决这些问题。如果问题持续发生,请查看下列文件夹:
~/Library/MobileDevice/Provisioning Profiles
此处列出了您已安装的配置文件。如果您选择预置配置文件,Finder
将向您显示包含详细信息的预览。删除重复的配置文件通常会有所帮助,因为这些配置文件的文件名不同,但详细信息相同。ibps3vxo2#
您可以从.csproj档案中的两柴组建移除旗标,以解决此问题。请尝试使用此链接:Check
cclgggtu3#
这可能是VS的问题。请参考这个官方链接的问题是固定的。请确保您使用的是最新版本。Check Here
5vf7fwbs4#
我花了一段时间才弄清楚这个问题。我不得不从我的mac导出证书到一个.p12文件,并将证书导入到VS**〉工具〉选项〉Xamarin〉苹果帐户〉查看详细信息〉导入证书,然后选择p12文件并将其导入到VS,确保它显示有效**状态栏上。
tzdcorbm5#
我使用的是Maui,在我的例子中,这个错误后面跟着一句话“请从ios捆绑包签名页面启用自动供应”。
因此,在解决方案资源管理器上右键单击您的项目,单击“属性”,展开iOS节点,然后选择“捆绑签名”。
在“方案”标题下,您会发现一个下拉列表;将“手动资源调配”更改为“自动资源调配”即可。
jgwigjjp6#
有一个类似的问题,但对于一个现有的项目有相同的错误。预置描述文件是新的,因为证书已过期。但新的有效描述文件在钥匙串中。
不管怎样,对我起作用的是在VS-〉工具-〉选项-〉Xamarin-〉iOS设置中关闭热重启
看起来它不知何故一直保存着旧证书。线索是在我重新连接时删除它们后,它们不断在钥匙链中重新出现。
可能不会帮助OP,但可能会帮助其他有类似问题的人。