У меня есть приложение с расширением общего доступа. Мое приложение зависит от CocoaLumberjack/Default
, а расширение общего ресурса зависит от CocoaLumberjack/Core
. Когда я строю с use_frameworks!
, я получаю следующую ошибку:
$ rm -rf Pods Podfile.lock; pod install
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
Installing CocoaLumberjack (2.0.3)
Generating Pods project
2015-10-28 10: 46: 04.015 ruby [53095: 3440989] предупреждение: ссылка на файл для «CocoaLumberjack.framework» является членом нескольких групп («Продукты» и «Продукты»); это указывает на искаженный проект. Будет сохранено только членство в одной из групп (но это не повлияет на членство в целевых объектах). Если вам нужна ссылка на один и тот же файл в нескольких группах, добавьте еще одну ссылку на тот же путь.
Integrating client project
Sending stats
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 1 total
pod installed.
[!] [Xcodeproj] Generated duplicate UUIDs:
PBXFileReference - /mainGroup/children/children:displayName:CocoaLumberjack.framework,explicitFileType:wrapper.framework,includeInIndex:0,isa:PBXFileReference,name:CocoaLumberjack.frameworks::CocoaTreeCocoaLumberjack. .framework, explicitFileType: wrapper.framework, includeInIndex: 0, isa: PBXFileReference, имя: CocoaLumberjack.framework, путь: CocoaLumberjack.framework, sourceTree: BUILT_PRODUCTS_DIR`` displayName: Pods_MyProject.framework: includeFramework: includeFramework isa: PBXFileReference, имя: Pods_MyProject.framework, путь: Pods_MyProject.framework, sourceTree: BUILT_PRODUCTS_DIR ,, displayName: Pods_MyShare.framework, explicitFileType: wrapper.framework_, includeInIndexworkS: 0, pathShare_Share_Share_Share: .framework, sourceTree: BUILT_PRODUCTS_DIR ,, displayName: Products, isa: PBXGroup, name: Products, sourceTree:, / Products / children / displayName: CocoaLumberjack.framework, explicitFileType: wrapper.fra mework, includeIndex: 0, isa: PBXFileReference, имя: CocoaLumberjack.framework, путь: CocoaLumberjack.framework, sourceTree: BUILT_PRODUCTS_DIR, / Products / CocoaLumberjack.framework
Это мой Podfile
:
workspace 'MyWorkspace'
xcodeproj 'MyProject/MyProject.xcodeproj'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
link_with 'MyProject', 'MyShare'
target :MyProject do
pod 'CocoaLumberjack', '~> 2.0.1'
end
target :MyShare do
pod 'CocoaLumberjack/Core', '~> 2.0.1'
end
Я смог обойти эту проблему, заставив обе мои цели использовать один и тот же подспек CocoaLumberjack
. Мой рабочий Podfile
ниже:
workspace 'MyWorkspace'
xcodeproj 'MyProject/MyProject.xcodeproj'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
link_with 'MyProject', 'MyShare'
target :MyProject do
pod 'CocoaLumberjack/Core', '~> 2.0.1'
end
target :MyShare do
pod 'CocoaLumberjack/Core', '~> 2.0.1'
end
Зачем нужен этот обходной путь? Что происходит, когда у меня действительно есть разные зависимости подспецификации между двумя целями?
ИЗМЕНИТЬ
Похоже, это связано с проблемой 4370 CocoaPods. Я разместил свой пример проекта на github.