Swift项目导入本地XCFramework二进制包失败原因排查
问题分析与解决方案
问题根源
Swift Package Manager(SPM)默认会寻找名为module.modulemap的模块映射文件,而你当前的模块映射文件命名为core_cryptoFFI.modulemap,这导致SPM无法识别XCFramework中的CoreCrypto模块。
修复步骤
修正模块映射文件名
进入XCFramework的每个架构子目录(ios-arm64/Headers和ios-x86_64-simulator/Headers),将core_cryptoFFI.modulemap重命名为module.modulemap,文件内容保持不变:module CoreCrypto { header "core_cryptoFFI.h" export * }清理缓存并重新构建
执行以下命令清理SPM缓存,避免旧缓存影响构建:swift package clean swift build
额外验证点
- 确认
Package.swift中binaryTarget的路径"out/CoreCrypto.xcframework"正确,即Package.swift文件与out目录处于同一层级。 - 在
CoreCryptoSwift的代码中,确保导入语句为import CoreCrypto,与模块映射和binaryTarget的名称完全一致。
如果问题仍存在,建议使用xcodebuild -create-xcframework命令重新生成XCFramework,手动构建的XCFramework容易出现Info.plist缺失或结构不规范的问题,该命令会自动生成符合标准的XCFramework结构。
内容的提问来源于stack exchange,提问作者Augusto
相关产品推荐
相关产品推荐

