.NET MAUI iOS构建报错:GoogleAppMeasurement 8.9.1无匹配框架
.NET MAUI iOS构建错误:GoogleAppMeasurement.xcframework找不到匹配框架(ARMv7模拟器架构)
Xamarin.Shared.targets(137, 3): 在'/Users/bryce/Library/Caches/XamarinBuildDownload/GAppM-8.9.1/GoogleAppMeasurement-8.9.1/Frameworks/GoogleAppMeasurement.xcframework'内未找到匹配框架。支持平台:'ios',支持平台变体:'simulator',支持架构:'ARMv7'。
错误原因
- 架构淘汰与不匹配:ARMv7是老旧的32位移动架构,iOS 11之后的模拟器已不再支持该架构。当前Apple Silicon模拟器使用ARM64架构,Intel模拟器使用x86_64架构,错误说明构建系统在请求已被淘汰的ARMv7模拟器架构,而目标xcframework不包含该架构的二进制。
- MAUI与Xamarin.Forms的构建差异:MAUI基于.NET 7的新构建系统,对xcframework的架构匹配校验更严格;Xamarin.Forms的构建逻辑相对宽松,会自动忽略不兼容的架构请求,因此不会触发该错误。
- NuGet包版本问题:你使用的GoogleAppMeasurement 8.9.1版本的xcframework可能未包含ARM64模拟器架构的二进制,或者包本身的架构配置存在问题。
解决方法
1. 升级Google相关NuGet包
找到项目中关联的Google Analytics/Firebase类NuGet包(如Xamarin.Firebase.iOS.Analytics),升级至最新稳定版。新版本的包会适配当前iOS模拟器的主流架构(ARM64/x86_64),移除对ARMv7的无效依赖。
2. 强制指定iOS构建架构
在项目的.csproj文件中添加以下配置,限制仅构建兼容的架构,排除ARMv7:
<PropertyGroup Condition="$(TargetFramework.Contains('-ios'))"> <RuntimeIdentifiers>ios-arm64;ios-x64</RuntimeIdentifiers> <MtouchArch>ARM64;x86_64</MtouchArch> </PropertyGroup>
3. 彻底清理并重新恢复依赖
- 删除以下目录中的Google相关缓存文件:
/Users/bryce/Library/Caches/XamarinBuildDownload/GAppM-8.9.1~/.nuget/packages下所有Google开头的包目录
- 在终端进入项目根目录,执行命令:
dotnet clean dotnet restore
4. 检查模拟器目标配置
确保你选择的模拟器为当前主流型号(如iPhone 14/15 Simulator),这类模拟器默认使用ARM64(Apple Silicon)或x86_64(Intel)架构,避免残留的旧架构配置触发错误。
内容的提问来源于stack exchange,提问作者BruceTheBrick
相关产品推荐
相关产品推荐

