无法对libSkiaSharp进行代码签名。

6

我有一个用Xamarin.Forms (5.0.0.2083)开发的安卓和iOS应用程序。我使用Visual Studio版本16.11.2和最新版的Xcode在Mac上进行开发。我可以通过各个平台的模拟器构建和执行该应用程序,并能够为安卓存档生产版本。但是,每次我尝试为iOS存档生成生产版本时,都会出现以下错误。我对此并不陌生。我已经为这个特定的应用程序改进和部署了几年。但是我们添加了一些功能并升级了NuGet包,现在似乎无法构建生产iOS版本。我已经尝试了我能想到的所有方法来修复这个问题,包括删除和重新创建证书和配置文件、使用不同的Windows机器和不同的Mac以及Visual Studio的不同版本等等......但都得到相同的结果。我直接尝试使用最新版本的Visual Studio for Mac也会得到相同的结果。有人能给我一些解决此问题的想法吗?

4> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil -num-threads 4 -z -o bin/iPhone/Release/IVI.Central.Mobile.iOS.app.dSYM bin/iPhone/Release/IVI.Central.Mobile.iOS.app/IVI.Central.Mobile.iOS
4> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip -i -s obj/iPhone/Release/mtouch-symbols.list bin/iPhone/Release/IVI.Central.Mobile.iOS.app/IVI.Central.Mobile.iOS
4> /usr/bin/mdimport bin/iPhone/Release/IVI.Central.Mobile.iOS.app/../
4> Tool /usr/bin/codesign execution finished (exit code = 1).
4>
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): error : /usr/bin/codesign exited with code 1
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): error :
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): **error : Failed to codesign** 'bin/iPhone/Release/IVI.Central.Mobile.iOS.app//Frameworks/**libSkiaSharp.framework/libSkiaSharp**': /Users/paulaicher/Library/Caches/Xamarin/mtbs/builds/IVI.Central.Mobile.iOS/849a0f003a7017afb02a607086b4ad9a3834fdb506af57c8fbe9219b92682d08/bin/iPhone/Release/IVI.Central.Mobile.iOS.app/Frameworks/**libSkiaSharp.framework: replacing existing signature**
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): error : Warning: unable to build chain to self-signed root for signer "Apple Distribution: Industrial Ventilation, Inc (EQS49K4W53)"
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): error : /Users/paulaicher/Library/Caches/Xamarin/mtbs/builds/IVI.Central.Mobile.iOS/849a0f003a7017afb02a607086b4ad9a3834fdb506af57c8fbe9219b92682d08/bin/iPhone/Release/IVI.Central.Mobile.iOS.app/Frameworks/libSkiaSharp.framework: errSecInternalComponent
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): error :
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\iOS\Xamarin.Shared.targets(1075,3): error :
========== Rebuild All: 3 succeeded, 1 failed, 0 skipped ==========

https://www.google.com/search?q=Warning:+unable+to+build+chain+to+self-signed+root+for+signer+site:stackoverflow.com - Jason
是的,我已经阅读了你在谷歌查询中引用的所有帖子。最新的一篇是今年5月份发布的。它们都报告说已经在Visual Studio的早期版本中修复了,而这些版本距离我当前使用的版本已经有了5到6个版本的差距。回到我的问题,我该如何解决代码签名问题?我正在尝试找出如何获取更多关于实际发生情况的信息。 - Paul Aicher
1个回答

14

经过大量的搜索和挖掘,我终于弄清楚了问题所在。错误信息让我误以为这与libSkiaSharp有关。(主要是因为它报告了这个错误)但是即使我将libSkiaSharp完全从我的项目中删除,我仍然遇到了签名错误。只是不再有skiasharp的附加错误了。

最后我发现,我的macincloud虚拟机和我刚购买的全新Mac上都安装了旧版的“苹果全球开发者关系认证机构”证书。虽然这些证书尚未过期,但他们已开始使用他们的新认证机构发布新证书。详情请见

根据苹果的文档,XCode 11.4.1及以上版本应该会自动安装新的证书。但是显然XCode 12.5.1并没有这么做。

解决此问题的步骤如下:

  1. 在您的Mac上打开密钥链
  2. 选择“登录密钥链”
  3. 选择证书类别
  4. 删除“苹果全球开发者关系认证机构”证书
  5. 更新证书下载新的证书并安装
  6. 返回Visual Studio并构建项目

在这里工作过,非常感谢! - Ângelo Polotto
工作了。我没有“苹果全球开发者关系认证机构”的证书,我只是下载了新的证书,并且不得不重新启动VS,否则它无法构建。 - Artemious
非常感谢您,找到这个错误解决方案花了两天时间... - Igor Monteiro
非常感谢,实际上我没有“Apple Worldwide Developer Relations Certification Authority”证书。我尝试了你的方法,真是太神奇了。非常感谢。 - Gladis Wilson
谢谢。谢谢。谢谢。再也没有什么话可说了! - Ebubekir Çağrı Şen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接