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

Visual Studio Mac中MAUI iOS应用归档失败,三类错误求助

iOS应用归档问题解决方案

针对你执行sudo dotnet publish -f:net6.0-ios -c:Release -r ios-arm64 --self-contained时遇到的三类错误,逐个给出解决方法:

错误1:NETSDK1032 RuntimeIdentifier平台'ios-arm64'与PlatformTarget 'x64'不兼容

不用手动修改csproj.user,直接在主项目的.csproj文件里添加条件性配置,同时兼容真机归档和模拟器调试:

<PropertyGroup Condition=" '$(Configuration)|$(TargetFramework)|$(RuntimeIdentifier)' == 'Release|net6.0-ios|ios-arm64' ">
  <PlatformTarget>arm64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(TargetFramework)' == 'Debug|net6.0-ios' ">
  <PlatformTarget>x64</PlatformTarget>
</PropertyGroup>

这样Release归档时自动用arm64,Debug模拟器调试用x64,不用来回改配置。

错误2:/project.assets.json无'net6.0-ios'目标

针对子项目middleware.data,按以下步骤排查:

  • 打开子项目的.csproj文件,若为类库,直接用<TargetFramework>net6.0</TargetFramework>即可(.NET 6类库可被iOS项目引用),无需单独设置net6.0-ios;若子项目是特定iOS项目,必须添加<TargetFramework>net6.0-ios</TargetFramework>。
  • 清理整个解决方案的obj和bin文件夹,终端执行dotnet restore --force强制还原依赖,或在Visual Studio Mac右键解决方案选择"Restore NuGet Packages"。
  • 确认子项目被主iOS项目正确引用,未被排除在构建之外。

错误3:已设置ApplicationId仍提示需提供bundle标识符

按以下顺序排查:

  • 检查ApplicationId是否放在针对net6.0-ios的PropertyGroup里,避免全局设置被覆盖:
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0-ios' ">
  <ApplicationId>com.skillbased.skillbasedapp</ApplicationId>
</PropertyGroup>
  • 直接在Info.plist里添加CFBundleIdentifier字段(优先级高于csproj配置):
<key>CFBundleIdentifier</key>
<string>com.skillbased.skillbasedapp</string>
  • 确认Info.plist的"Build Action"设置为"BundleResource",未被标记为"Do Not Copy"或排除在构建外。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:35:28