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

Mac下VS Code使用sqlite-net-sqlcipher构建.NET8 MAUI iOS模拟器应用失败

解决.NET 8 MAUI + sqlite-net-sqlcipher iOS模拟器构建链接错误

问题分析

从错误日志可以明确:你使用的sqlite-net-sqlcipher版本(1.9.172)提供的e_sqlcipher.a原生库仅针对iOS真机arm64架构编译,但当前构建目标是iOS模拟器(iossimulator-arm64),架构不匹配导致链接失败。

解决步骤

1. 升级sqlite-net-sqlcipher到最新稳定版

旧版本的包可能存在多架构打包缺失问题,优先尝试升级到最新版(如1.9.180及以上):

dotnet add package sqlite-net-sqlcipher --version <最新稳定版本号>

2. 配置项目多架构支持

在MAUI项目的.csproj文件中添加iOS架构适配配置,确保Debug模式下模拟器兼容arm64和x86_64架构:

<PropertyGroup Condition="'$(TargetFramework)' == 'net8.0-ios'">
    <RuntimeIdentifiers>iossimulator-arm64;ios-arm64</RuntimeIdentifiers>
    <MtouchArch Condition="'$(Configuration)' == 'Debug' and '$(RuntimeIdentifier)' == 'iossimulator-arm64'">x86_64,arm64</MtouchArch>
</PropertyGroup>

3. 清理缓存并重建项目

执行以下命令彻底清理构建缓存后重新构建:

dotnet clean
rm -rf obj bin  # 手动删除项目下的obj和bin文件夹
dotnet build -f net8.0-ios -c Debug -r iossimulator-arm64

4. 验证原生库多架构支持

如果升级后仍报错,用lipo命令检查e_sqlcipher.a是否包含模拟器架构:

lipo -info /Users/user1/Desktop/MauiApp1/MauiApp1/obj/Debug/net8.0-ios/iossimulator-arm64/linker-cache/e_sqlcipher.a
  • 若输出仅显示arm64,说明库缺少模拟器架构,需更换包含多架构的包或自行编译支持模拟器的SQLCipher库。

5. 临时切换到x86_64模拟器(Apple Silicon Mac兼容方案)

在Xcode中创建一个x86_64架构的iOS模拟器,然后指定该架构构建:

dotnet build -f net8.0-ios -c Debug -r iossimulator-x64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:22:41