Xcode10.2.1+iOS11添加自定义框架遇dyld加载错误求助
dyld: Library not loaded问题 我碰到过好几个类似的场景,尤其是在Xcode 10.x搭配低版本iOS系统的时候,这个dyld: Library not loaded问题确实容易钻牛角尖。既然你已经试过那些常规操作(开启Always Embed Swift Binaries、清理项目、删除派生数据、重装证书)了,咱们来试试几个更针对性的排查点:
检查自定义框架的Deployment Target:
确保你的框架部署目标不高于iOS 11。如果框架的Deployment Target设成了iOS 12+,在iOS 11设备上会直接加载失败。操作路径:选中框架Target →General→Deployment Info,确认iOS版本是11.0或更低。验证项目的Framework Search Paths配置:
路径配置错误是常见的隐藏问题。进入主项目Target →Build Settings→ 搜索Framework Search Paths,确保包含自定义框架所在的路径,建议使用相对路径(比如$(PROJECT_DIR)/YourFrameworkFolder),并设置为recursive(递归搜索)。确认框架的Embed & Sign状态:
别只盯着Always Embed Swift Binaries,还要检查框架本身的嵌入设置。进入主项目Target →General→Frameworks, Libraries, and Embedded Content,找到你的自定义框架:- 如果是动态框架,必须设置为
Embed & Sign; - 如果是静态框架,则要设为
Do Not Embed。
搞混这两种类型的配置很容易导致加载失败。
- 如果是动态框架,必须设置为
对齐Build Configuration:
确保主项目和自定义框架的编译配置一致——主项目用Debug的话,框架也得是Debug编译;Release同理。可以在Xcode顶部的Scheme选择器里,检查框架的编译配置是否和主项目匹配。手动验证设备上的框架嵌入情况:
打开Xcode的Window → Devices and Simulators,选中你的iOS 11设备,找到你的App,点击Show Container,查看Frameworks目录下是否存在你的自定义框架。如果没有,说明嵌入步骤有问题,建议重新添加框架到项目并确认嵌入设置。进阶清理与构建操作:
试试终端执行以下命令,强制清理所有缓存并重新构建,有时候能解决常规Clean搞不定的问题:rm -rf ~/Library/Developer/Xcode/DerivedData xcodebuild clean -workspace YourProject.xcworkspace -scheme YourScheme xcodebuild build -workspace YourProject.xcworkspace -scheme YourScheme -destination 'platform=iOS,name=YourDeviceName'
如果这些方法都试过还是不行,可以补充说明你的框架是静态还是动态类型,以及添加框架的具体步骤,这样能更精准地定位问题。
内容的提问来源于stack exchange,提问作者user1342592

