【发布时间】:2020-09-22 13:34:28
【问题描述】:
更新到 Xcode 12 后项目将不再构建。
undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_DDLog", referenced from:
objc-class-ref in Bouncer.o
ld: symbol(s) not found for architecture x86_64
DDLog 在 CocoaLumberjack 中定义。这是FrameworkA的依赖,是FrameworkB(测试项目)的依赖
Podspec 提取框架A:
Pod::Spec.new do |s|
[...]
s.default_subspec = 'Core'
s.subspec 'Core' do |co|
co.source_files = 'FrameworkA_Objc_DependencyIssue/Classes/**/*'
co.dependency 'CocoaLumberjack', '~> 3.1'
end
end
Podspec 提取框架B:
Pod::Spec.new do |s|
[...]
s.source_files = 'FrameworkB_Objc_DependencyIssue/Classes/**/*'
s.dependency 'FrameworkA_Objc_DependencyIssue/Core', '~> 0.1.2'
# s.dependency 'CocoaLumberjack' # Adding direkt dependency fixes problem!
end
此设置可以使用 Xcode 11 编译。
【问题讨论】:
-
您可以在此处查看我的演示项目,其中显示了此问题:github.com/cweymann/FrameworkB,github.com/cweymann/FrameworkA