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

Xcode 15 Beta 3出现重复LC_RPATH弃用警告,如何解决?

Xcode 15 Beta 3 重复LC_RPATH 构建警告处理方案

是否需要修复

这些警告是Xcode 15启用的新链接器(ld64-1015+)新增的检查逻辑导致的,Xcode 14没开启这类检查所以没出现。虽然目前不影响项目构建和运行,但这类重复的rpath已经被标记为废弃(deprecated),后续Xcode正式版大概率会把这类警告升级为错误,导致构建失败,所以建议尽早修复。

具体修复方法

1. 项目/Target 自身配置问题

  • 打开Xcode,选中要处理的Target,进入「Build Settings」页面
  • 搜索Runpath Search Paths(对应底层键名LD_RUNPATH_SEARCH_PATHS)
  • 检查列表里是否有重复的条目:比如@executable_path/Frameworks、@loader_path/Frameworks或者/usr/lib/swift
  • 删除重复项,保留一份即可:iOS应用Target一般保留@executable_path/Frameworks就足够;如果是Framework类型的Target,可能需要保留@loader_path/Frameworks,根据自身Target类型调整。

2. CocoaPods 依赖导致的重复

如果项目用了CocoaPods,旧版本的Pods可能会自动给每个Target重复添加rpath,解决方式:

  • 优先升级CocoaPods到最新稳定版(比如1.12.x及以上),新版本已经适配Xcode 15的链接器规则,会自动避免重复添加rpath
  • 暂时无法升级的话,在项目的Podfile末尾添加以下脚本,执行pod install后会自动清理所有Pods Target的重复rpath:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      current_rpaths = config.build_settings['LD_RUNPATH_SEARCH_PATHS']
      next unless current_rpaths
      config.build_settings['LD_RUNPATH_SEARCH_PATHS'] = current_rpaths.uniq
    end
  end
end

3. 第三方库内置重复rpath

如果是引入的第三方静态库/Framework本身携带了重复的LC_RPATH条目:

  • 先用otool工具验证:
otool -l YourFramework.framework/YourFramework | grep -A2 LC_RPATH
  • 输出里如果看到重复的路径,优先联系库开发者更新版本;临时应急的话,可以用install_name_tool删除重复项(注意:修改第三方库可能带来兼容性风险):
# 先通过otool找到重复rpath的索引,假设要删除的是@executable_path/Frameworks
install_name_tool -delete_rpath @executable_path/Frameworks YourFramework.framework/YourFramework

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 06:50:05