Ссылка на файл CocoaPods является членом нескольких групп
У меня есть приложение с расширением share. Мое приложение зависит от 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 рубин [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.framework,path:CocoaLumberjack.framework,sourceTree:BUILT_PRODUCTS_DIR,displayName:CocoaLumberjack.framework, explicitFileType: wrapper.framework, includeInIndex: 0, иш: PBXFileReference, имя: CocoaLumberjack.framework, путь: CocoaLumberjack.framework, sourceTree: BUILT_PRODUCTS_DIR, отображаемое_имя Pods_MyProject.framework, explicitFileType: wrapper.framework, includeInIndex: 0, иш: PBXFileReference, имя: Pods_MyProject.framework, путь: Pods_MyProject.framework, sourceTree: BUILT_PRODUCTS_DIR, отображаемое_имя Pods_MyShare.framework, explicitFileType: wrapper.framework, includeInIndex: 0, иша: PBXFileReference, имя: Pods_MyShare.framework, путь: Pods_MyShare.framework, sourceTree: BUILT_PRODUCTS_DIR, DISPLAYNAME: Продукты, иш: PBXGroup, имя: Продукты, sourceTree:,/Продукция/дети/отображаемое_имя CocoaLumberjack.framework, explicitFileType: wrapper.framework, includeInIndex: 0, иш: PBXFileReference, имя: CocoaLumberjack.framework, путь: CocoaLumberjack.framework, sourceTree: BUILT_PRODUCTS_DIR,/Продукты/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
Почему это обходное решение необходимо? Что происходит, когда у меня есть разные зависимости между отдельными объектами между двумя целями?
ИЗМЕНИТЬ
Это выглядит как CocoaPods Issue 4370. Я разместил свой проект на github.
Ответы
Ответ 1
Это ошибка в Cocoapods. Вероятно, она не будет исправлена в течение долгого времени.
Запуск export COCOAPODS_DISABLE_DETERMINISTIC_UUIDS=YES
на Терминале, похоже, сейчас подавляет предупреждения.
EDIT Февраль 2016:
В последней версии Cocoapod теперь это перемещено в раздел установки подфайла: install! 'cocoapods', :deterministic_uuids => false
Ответ 2
Я обнаружил эту ошибку при добавлении расширения приложения.
Я исправил это, повторяя строку platform :ios, '7.0'
, присутствующую в моем приложении, и мою новую цель.
Убедившись, что две цели используют одну и ту же платформу, я решил проблему.
Ответ 3
Проблема была устранена для меня следующими шагами: (Я также внес изменения в соответствии с предложенным @ale0xB)
- Очистить проект
- Закройте Xcode
- Удалить производные данные
- Если вы уже установили POD, удалите ".xcworkspace" & Файлы Podfile.lock
- Установите модуль снова
- Откройте ".xcworkspace" и запустите