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

不同机器导出iOS IPA启动报DYLD 1 Library missing错误排查

问题根因

该崩溃的核心原因是机器B构建出的mylib.dylib在链接阶段写入主二进制的加载路径为构建机本地DerivedData的绝对路径,而非iOS应用要求的@rpath相对路径。应用安装到真机后,dyld会按照写死的Mac本地路径查找动态库,自然无法找到对应文件触发崩溃。
两台机器代码、Xcode版本完全一致但构建结果不同,通常是机器B存在本地构建缓存脏数据、动态库target的本地配置覆盖、依赖安装不完整导致的,和主工程的Embed Libraries、Runpath Search Paths配置无直接关联。

解决步骤
  • 校验动态库target的核心构建配置:打开mylib.dylib对应的target,找到Build Settings中的Dynamic Library Install Name Base(对应配置项LD_DYLIB_INSTALL_NAME_BASE),确认值为@rpath,不能留空或填写任何本地绝对路径。多数同类问题都是只配置了主工程参数,漏改动态库自身的该配置项导致。
  • 全量清理机器B的构建缓存:执行命令rm -rf ~/Library/Developer/Xcode/DerivedData/*清空Xcode全局缓存,同时打开Xcode执行Product > Clean Build Folder,避免之前构建生成的带错误路径的动态库缓存被复用。
  • 校验动态库的发布配置:找到mylib.dylib target下的Skip Install配置项,确认值为YES,避免归档阶段Xcode将动态库的安装路径设置为本地构建路径,而非应用包内的Frameworks目录。
  • 归档后做路径合法性校验:完成归档后,打开xcarchive包内的Products/Applications/MyApp.app目录,执行命令otool -L MyApp查看主二进制的依赖库路径,确认mylib.dylib的加载路径为@rpath/mylib.dylib,不存在/Users/开头的本地绝对路径;再进入包内的Frameworks目录,执行otool -D mylib.dylib查看动态库自身的install name,同样为@rpath/mylib.dylib即为配置正确。
  • 若使用CocoaPods管理依赖,在机器B上重新执行pod install --repo-update,修复Pods工程配置生成异常、依赖文件缺失导致的路径错误问题,完成后重新归档即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:24:21