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

MAUI Blazor Hybrid .NET8.0-iOS发布iOS归档失败求助

解决MAUI Blazor Hybrid .NET 8 iOS发布时的路径拼接错误问题

问题详情

发布MAUI Blazor Hybrid .NET 8.0 iOS应用时,归档创建失败,核心错误信息:

Xamarin.VisualStudio.Progress.ProgressReportService Information: 0 :
!Cannot create an IOS archive 'MyProject'. Process cannot be executed
on XMA server. The "Unzip" task failed unexpectedly.
System.NotSupportedException: The given path's format is not
supported. at
System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String
fullPath) at
System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean
checkHost) at
Xamarin.MacDev.CompressionHelper.TryDecompressUsingSystemIOCompression(TaskLoggingHelper
log, String zip, String resource, String decompressionDir) in
/Users/builder/azdo/_work/1/s/xamarin-macios/msbuild/Xamarin.MacDev.Tasks/Decompress.cs:line
200 at
Xamarin.MacDev.CompressionHelper.TryDecompress(TaskLoggingHelper log,
String zip, String resource, String decompressionDir, List`1
createdFiles, String& decompressedResource) in
/Users/builder/azdo/_work/1/s/xamarin-macios/msbuild/Xamarin.MacDev.Tasks/Decompress.cs:line
104 at Xamarin.MacDev.Tasks.Unzip.ExecuteLocally() in
/Users/builder/azdo/_work/1/s/xamarin-macios/msbuild/Xamarin.MacDev.Tasks/Tasks/Unzip.cs:line
61 at Xamarin.MacDev.Tasks.Unzip.Execute() in
/Users/builder/azdo/_work/1/s/xamarin-macios/msbuild/Xamarin.MacDev.Tasks/Tasks/Unzip.cs:line
43 at
Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at
Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()

开启诊断级构建输出后发现,构建时错误拼接路径,且选择发布iOS仍编译Android文件,触发路径格式不支持警告:

Ditto: 2024-02-05T17:50:53.1156162+02:00 - Creating output 'obj\Release\net8.0-ios\ios-arm64\ipa\Payload\MyApp.app**\C:\T**\MYdIR\MyApp\Platforms\Android\google-services.json'...
C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\17.2.8004\tools\msbuild\iOS\Xamarin.iOS.Common.targets(391,3): warning : The given path's format is not supported.

重现步骤

  • 完成MAUI Blazor项目开发
  • 成功重建DEBUG模式项目
  • 成功重建RELEASE模式项目
  • 设置项目属性及iOS发布签名
  • 构建iOS发布归档文件时弹出错误
  • 开启构建输出诊断,定位到路径拼接错误及Android文件编译问题

解决方案

  1. 排除iOS构建中的Android资源
    编辑项目.csproj文件,添加以下配置,确保iOS构建时不包含Android平台文件:

    <ItemGroup Condition="'$(TargetFramework)' == 'net8.0-ios'">
      <None Remove="Platforms\Android\**" />
      <Compile Remove="Platforms\Android\**" />
    </ItemGroup>
    

    或在Visual Studio中选中Android平台文件(如google-services.json),右键设置生成操作为None,并添加条件$(TargetFramework) == 'net8.0-ios'。

  2. 清理重构项目

    • 执行命令:dotnet clean
    • 删除项目根目录下的obj和bin文件夹
    • 重启Visual Studio,选择iOS平台重新构建并发布
  3. 检查项目路径
    确保项目所在路径无特殊字符(空格、非ASCII字符等),若有则迁移到简洁路径下。

  4. 更新iOS SDK
    执行命令更新至最新稳定版:dotnet workload update ios,修复已知构建路径问题。

内容的提问来源于stack exchange,提问作者Michael Brooks

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:46:32