yandexmobile/metrica-sdk-ios

Multiple commands produce ...YandexMobileMetrica

Algashev opened this issue · 7 comments

Xcode Version 12.5 (12E262)
CocoaPods 1.10.1

После обновления YandexMobileMetrica с 3.15.1 на 3.17.0 проект не компилируется, при сборке проекта выходит ошибка:

Multiple commands produce '~/Library/Developer/Xcode/DerivedData/.../Build/Products/Debug-iphoneos/XCFrameworkIntermediates/YandexMobileMetrica':
1) That command depends on command in Target 'YandexMobileMetrica-Dynamic-Dynamic_Core-Dynamic_Crashes' (project 'Pods'): script phase “[CP] Copy XCFrameworks”
2) That command depends on command in Target 'YandexMobileMetrica-Dynamic_Core' (project 'Pods'): script phase “[CP] Copy XCFrameworks”

Здравствуйте. Очень жаль, что у вас не собирается проект. Можете, пожалуйста, поделиться Подфайлом?

platform :ios, '9.0'
use_frameworks!

target 'LimeHDTV' do
  pod 'ActionSheetPicker-3.0'
  pod 'Alamofire', git: 'https://github.com/LimeHD/Alamofire.git', branch: 'v4.8.2_decrease_timeout_interval'
  pod 'Firebase/Analytics','7.11.0'
  pod 'Firebase/Crashlytics','7.11.0'
  pod 'Google-Mobile-Ads-SDK','7.69.0'
  pod 'GoogleMobileAdsMediationFacebook'
  pod 'GoogleMobileAdsMediationMyTarget'
  pod 'GoogleMobileAdsMediationMoPub'
  pod 'google-cast-sdk','4.4.7'
  pod 'GoogleAds-IMA-iOS-SDK'
  pod 'SwiftyStoreKit'
  pod 'SwiftyJSON'
  pod 'M3U8Kit', git: 'https://github.com/LimeHD/M3U8Parser.git', branch: 'limehd_0.2.5'
  pod 'mopub-ios-sdk'
  pod 'YandexMobileAds/Dynamic','~> 4.1'
  pod 'YandexMobileMetrica/Dynamic'
  pod 'YandexMobileMetricaPush/Dynamic'
  pod 'RealmSwift', '4.4.1'
  pod 'myTargetSDK'
    
  pod 'VTVSDKPlayer/dynamic.device', git: 'https://mob_sdk_partner:PARTNER_ID@gitlab.vitrina.media/vitrinatv/sdk_mob_ios_dist.git', tag: '4.4.2'
end

target 'NotificationService' do
  pod 'YandexMobileMetricaPush/Dynamic'
end

deployment_target = '9.0'

post_install do |installer|
    installer.generated_projects.each do |project|
        project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
            end
        end
        project.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
        end
    end
end

Знаете, почему-то не получается воспроизвести. Может быть можете привести какой-нибудь сэмпл?

Возможно это даст какое-то понимание:
Изменения в файле PROJECT_NAME.xcodeproj/project.pbxproj:
v 3.15.1

...
"${PODS_ROOT}/YandexMobileMetrica/ios/dynamic/YandexMobileMetrica.framework",
"${PODS_ROOT}/YandexMobileMetrica/ios/dynamic/YandexMobileMetricaCrashes.framework",
...

v 3.17.0

...
"${PODS_XCFRAMEWORKS_BUILD_DIR}/YandexMobileMetrica/YandexMobileMetrica.framework/YandexMobileMetrica",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/YandexMobileMetricaCrashes/YandexMobileMetricaCrashes.framework/YandexMobileMetricaCrashes",
...

При обновлении YandexMobileMetrica с 3.15.1 на 3.16.0, проблем не наблюдается, при обновлени с 3.16.0 на 3.17.0, проблемы теже - проект не компилируется.

Нашел вот такой issue. Больше похоже на баг самого CocoaPods. На сколько я понял, он создает зачем-то два таргета: YandexMobileMetrica-Dynamic-Dynamic_Core-Dynamic_Crashes и YandexMobileMetrica-Dynamic_Core, хотя у меня локально только YandexMobileMetrica-Dynamic-Dynamic_Core-Dynamic_Crashes. Пишут, что использование Legacy Build System может помочь. Можно попробовать еще руками удалить лишний таргет из проекта Pods.