Xcode 14.3添加Framework后遇iOS模拟器编译错误求助
iOS模拟器运行SRT Framework报错的解决方案
1. 重新构建支持多架构的通用SRT Framework
原构建脚本可能只生成了真机架构的库,需要同时编译真机和模拟器版本并合并:
- 先编译真机版本:
./build-ios.sh --enable-static - 再编译模拟器版本(Xcode14.3+需规避Apple Silicon模拟器与真机的arm64冲突):
./build-ios.sh --enable-static --arch x86_64 --sdk iphonesimulator - 合并真机和模拟器的静态库:
lipo -create build-ios/lib/libsrt.a build-ios-simulator/lib/libsrt.a -output libsrt-universal.a - 将合并后的库替换原Framework中的二进制文件:
cp libsrt-universal.a SRT.framework/SRT
2. 调整项目构建设置
- 打开项目Build Settings,将
Build Active Architecture Only的Debug模式设为YES,Release模式设为NO; - 确认
Valid Architectures包含x86_64(Intel模拟器)和arm64(真机); - 在
Other Linker Flags中添加-ObjC,确保Framework的符号被正确链接。
3. 清理缓存后重新构建
- 执行
Cmd+Shift+K清理项目,再执行Cmd+Option+Shift+K清理构建文件夹; - 重启Xcode,重新导入修改后的通用Framework。
4. 验证Framework架构
用以下命令检查是否包含所需架构:
lipo -info SRT.framework/SRT
正常输出应包含x86_64和arm64。
内容的提问来源于stack exchange,提问作者Kabrel
相关产品推荐
相关产品推荐

