You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI iOS真机调试遇code object is not signed at all错误求助

.NET MAUI iOS调试签名错误:code object is not signed at all

问题背景

使用远程Mac(Sonoma 14.5)连接开发环境,搭配Visual Studio 2022 17.9.7、Xcode 15.2、iOS 17.5设备调试.NET MAUI应用时,构建始终失败,错误提示为code object is not signed at all,日志指向System.Runtime.Intrinsics.dll未完成签名,导致codesign工具执行失败。

已尝试的排查操作:

  • 删除资源文件夹下所有子目录
  • 切换自动/手动签名配置,甚至通过API登录苹果开发者账号,均无法解决
  • 移除所有推送通知相关代码,简化证书与配置文件后问题依旧

完整错误日志

Build started at 1:54 AM...
1>------ Build started: Project: MyAPP, Configuration: Debug Any CPU ------
1>Executing SayHello Task to establish a connection to a Remote Server. 
1>          Properties: 
1>              SessionId=***, 
1>              Addresss=192.168..., 
1>              SshPort=22, 
1>              TcpPort=..., 
1>              User=***, 
1>              AppName=MyAPP,
1>              VisualStudioProcessId=14340,
1>              ContinueOnDisconnected=False
1>Detected signing identity:
1>  Code Signing Key: "Apple Development: ...
1>  Provisioning Profile: "VS: com.i...
1>  Bundle Id: com.i...
1>  App Id: ***.com.i..
1>Skipping analyzers to speed up the build. You can execute 'Build' or 'Rebuild' command to run analyzers.
1>E:\...
...
...
...
1>--skip-unresolved true  --notrimwarn --custom-data "LinkerOptionsFile=obj/Debug/net8.0-ios/ios-arm64/custom-linker-options.txt" --custom-data DisableMarkingOfCopyAssemblies=true --verbose -b --disable-opt unusedtypechecks --enable-serialization-discovery
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): warning MT4189: The class 'PassKit.PKDisbursementAuthorizationController' will not be registered it has been removed from the iOS SDK.
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): warning MT4189: The class 'PassKit.PKDisbursementAuthorizationControllerDelegate' will not be registered it has been removed from the iOS SDK.
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): warning MT4178: The class 'NewsstandKit.NKAssetDownload' will not be registered because the NewsstandKit framework has been removed from the iOS SDK.
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): warning MT4178: The class 'NewsstandKit.NKLibrary' will not be registered because the NewsstandKit framework has been removed from the iOS SDK.
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Windows.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.iOS.Common.After.targets(364,3): warning MT4178: The class 'NewsstandKit.NKIssue' will not be registered because the NewsstandKit framework has been removed from the iOS SDK.
1>/usr/bin/mdimport bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/
1>Tool /usr/bin/codesign execution finished (exit code = 1).
1>/Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app: code object is not signed at all
1>In subcomponent: /Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app/System.Runtime.Intrinsics.dll
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error : /usr/bin/codesign exited with code 1:
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error : /Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app: code object is not signed at all
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error : In subcomponent: /Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app/System.Runtime.Intrinsics.dll
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error : Failed to codesign '/Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app': /Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app: code object is not signed at all
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error : In subcomponent: /Users/user/Library/Caches/Xamarin/mtbs/builds/MyAPP/.../bin/Debug/net8.0-ios/ios-arm64/device-builds/iphone13.1-17.5.1/MyAPP.app/System.Runtime.Intrinsics.dll
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error : 
1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8053\tools\msbuild\iOS\Xamarin.Shared.targets(2257,3): error :
1>Done building project "MyAPP.csproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 1:55 AM and took 41.399 seconds ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========
========== Deploy completed at 1:55 AM and took 41.399 seconds ==========

解决步骤

1. 彻底清理构建缓存

  • 在Visual Studio中执行Clean Solution,然后手动删除本地项目的bin、obj文件夹
  • 远程Mac上删除/Users/[你的用户名]/Library/Caches/Xamarin/mtbs/builds/[你的项目名]目录
  • 重启Visual Studio和远程Mac,再执行Rebuild Solution

2. 升级.NET MAUI iOS SDK

当前使用的Microsoft.iOS.Sdk 17.2.8053与Xcode 15.2存在签名兼容性问题,建议升级到匹配版本:

dotnet workload update ios

3. 修正签名配置

  • 手动签名时,确认Provisioning Profile已包含当前测试设备的UDID
  • 在iOS构建设置中,明确指定Code Signing Identity为对应的Apple Development证书,避免自动选择冲突
  • 检查项目csproj文件,移除重复的签名相关配置节点(如<CodeSigningKey>、<ProvisioningProfile>)

4. 临时跳过目标DLL签名(仅调试用)

在项目csproj中添加以下配置,跳过System.Runtime.Intrinsics.dll的签名检查:

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-ios|AnyCPU'">
  <CodesignSkip>System.Runtime.Intrinsics.dll</CodesignSkip>
</PropertyGroup>

注意:发布版本必须移除该配置,确保完整签名。

5. 验证远程Mac签名权限

在远程Mac终端执行以下命令,检查签名身份有效性:

security find-identity -v -p codesigning
codesign -dv --verbose=4 /path/to/your/app/MyAPP.app/System.Runtime.Intrinsics.dll

若权限异常,重启钥匙串访问并重新导入开发者证书。


内容的提问来源于stack exchange,提问作者Farshad Nabizadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:09:53