已安装全部所需组件仍无法通过cargo lipo构建Rust iOS库
问题根因
你使用的2019年教程适配的是旧版Rust工具链和cargo-lipo,和当前版本存在适配冲突,核心是默认编译的目标包含Rust已经弃用的32位iOS架构(armv7、armv7s等),这类架构的std组件已经不再提供,所以即使你安装了aarch64目标的std也会触发报错。
解决方案
- 方案1:指定有效架构执行cargo lipo
运行命令时明确指定当前iOS生态仍支持的架构,跳过废弃的32位架构:
其中cargo lipo --release --targets aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-simaarch64-apple-ios对应真机,x86_64-apple-ios对应Intel芯片Mac的模拟器,aarch64-apple-ios-sim对应Apple Silicon系列Mac的模拟器,你可以根据自己的需求裁剪目标。 - 方案2:重装目标并升级工具链
如果指定架构后依然报错,先卸载再重装对应目标,同时升级全量Rust工具链到最新版:rustup target remove aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim rustup update - 方案3:手动编译生成xcframework
不需要依赖cargo-lipo,直接分别编译各目标后用Xcode官方工具合并为xcframework,兼容性更好:- 分别编译各目标:
cargo build --release --target aarch64-apple-ios cargo build --release --target x86_64-apple-ios cargo build --release --target aarch64-apple-ios-sim- 调用xcodebuild命令合并生成xcframework,替换命令中的库名和路径为你自己的实际值即可。
- 额外检查项
确认项目根目录或全局Cargo配置文件(.cargo/config.toml)中没有配置错误的target参数、不存在的架构指定或错误的链接器配置。
内容的提问来源于stack exchange,提问作者MixedByInstinct
相关产品推荐
相关产品推荐

