cocoapods-binary icon indicating copy to clipboard operation
cocoapods-binary copied to clipboard

Duplicit linking of vendored framework

Open jakubvano opened this issue 6 years ago • 0 comments

What's your environment:

 CocoaPods : 1.6.1
 Xcode : 10.2.1 (10E1001)
cocoapods-binary : 0.4.4
plugin 'cocoapods-binary'

A demo project is helpful: Unfortunatelly I can't attach demo project, as the Issue described below occurs with a private cocoapod, and I haven't been able to find analogous opensource example. I will try to provide a detailed description.

Issue Problematic podspec includes both static vendored framework & custom source code:

Pod::Spec.new do |spec|
    spec.name = 'MyFramework'
    spec.source_files  = 'src/*.{m,h,swift}'
    spec.vendored_frameworks  = 'VendoredFramework.framework"
end

When I install this without cocoapods-binary:

target 'MyApp' do
    pod 'MyFramework'
end

Everything works OK - specifically, generated Pods-MyApp.debug.xcconfig contains

OTHER_LDFLAGS = $(inherited) -framework "MyFramework"

However, when I install this with cocoapods-binary:

target 'MyApp' do
    pod 'MyFramework', :binary => true
end

I get duplicate symbols from VendoredFramework in runtime - included in both MyApp & MyFramework. Pods-MyApp.debug.xcconfig contains

OTHER_LDFLAGS = $(inherited) -framework "MyFramework" -framework "VendoredFramework"

When I remove -framework "VendoredFramework" from .xcconfig everything works fine again (until next pod install)

jakubvano avatar May 30 '19 11:05 jakubvano