当前位置: 首页>后端>正文

升级xcode15之后,出现Duplicate symbols

升级到Xcode?15后,原先Xcode14可以编译的项目出现大量Duplicate symbols,且引用报错指向同一个路径(一般为Framework)下的同一个文件。经过查找相关解决,可通过

在Xcode -> Target -> Build Setting -> Other Linker Flags?添加一行"-ld64"

即可解决该问题

原因是Xcode15采用了新的链接器(Linker),被称作“ld_prime”。新的连接器有诸多好处,尤其是对合并库的支持方面,具体可以查看WWDC 2023 SESSION 10268Meet mergeable libraries.。然而,链接器的升级可能会出现不兼容老库的情况出现。遇到这种情况,可以通过恢复旧的连接器来解决这个问题。从Other Linker Flags添加"-ld64"后,就会覆盖Xcode编译时选择的链接器,因此可以正常访问。

也可以用cocoapods 安装之后修改OTHER_LDFLAGS

?xcode_version = `xcodebuild -version`.match(/Xcode (\d+)/)[1].to_i

? target_names = ['targer_name']

? installer.pods_project.targets.each do |target|

? ? next unless target_names.include?(target.name)

? ? target.build_configurations.each do |config|

? ? ? config.build_settings['OTHER_LDFLAGS'] ||= []

? ? ? if xcode_version >= 15

? ? ? ? ? unless config.build_settings['OTHER_LDFLAGS'].include?('-ld64')

? ? ? ? ? ? config.build_settings['OTHER_LDFLAGS'] << '-ld64'

? ? ? ? ? end

? ? ? else

? ? ? ? ? config.build_settings['OTHER_LDFLAGS']&.delete('-ld64')

? ? ? end

? ? end

? end


https://www.xamrdz.com/backend/37v1929078.html

相关文章: