CocoaPods file reference is a member of multiple groups

醉酒当歌 提交于 2019-12-03 15:03:58

问题


I have an app with a share extension. My app depends on CocoaLumberjack/Default, and my share extension depends on CocoaLumberjack/Core. When I build with use_frameworks!, I get the following error:

$ 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] warning: The file reference for "CocoaLumberjack.framework" is a member of multiple groups ("Products" and "Products"); this indicates a malformed project. Only the membership in one of the groups will be preserved (but membership in targets will be unaffected). If you want a reference to the same file in more than one group, please add another reference to the same path.

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,isa:PBXFileReference,name:CocoaLumberjack.framework,path:CocoaLumberjack.framework,sourceTree:BUILT_PRODUCTS_DIR,,displayName:Pods_MyProject.framework,explicitFileType:wrapper.framework,includeInIndex:0,isa:PBXFileReference,name:Pods_MyProject.framework,path:Pods_MyProject.framework,sourceTree:BUILT_PRODUCTS_DIR,,displayName:Pods_MyShare.framework,explicitFileType:wrapper.framework,includeInIndex:0,isa:PBXFileReference,name:Pods_MyShare.framework,path:Pods_MyShare.framework,sourceTree:BUILT_PRODUCTS_DIR,,displayName:Products,isa:PBXGroup,name:Products,sourceTree:,/Products/children/displayName:CocoaLumberjack.framework,explicitFileType:wrapper.framework,includeInIndex:0,isa:PBXFileReference,name:CocoaLumberjack.framework,path:CocoaLumberjack.framework,sourceTree:BUILT_PRODUCTS_DIR,/Products/CocoaLumberjack.framework

This is my 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

I was able to work around this problem by making both of my targets use the same CocoaLumberjack subspec. My working Podfile is below:

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

Why is this workaround necessary? What happens when I actually have different subspec dependencies between two targets?

EDIT

This looks related to CocoaPods Issue 4370. I posted my example project on github.


回答1:


This is a bug in Cocoapods -And probably it won't be fixed in a long while-

Running export COCOAPODS_DISABLE_DETERMINISTIC_UUIDS=YES on the Terminal seems to suppress the warnings for now.

EDIT Feb 2016:

In latest version of Cocoapods this has now been moved to the install section of the Podfile: install! 'cocoapods', :deterministic_uuids => false




回答2:


I encountered this error when adding an application extension.

I fixed it by repeating the platform :ios, '7.0' line present in my application target to my new target as well.

Making sure the two targets use the same platform solved the issue for me.




回答3:


Problem fixed for me by following steps: (I have also done the changes as per @ale0xB suggested)

  1. Clean the project
  2. Close the Xcode
  3. Delete derived data
  4. If you have already installed the POD, kindly delete the “.xcworkspace” & “Podfile.lock” files
  5. Install pod again
  6. Open “.xcworkspace” and Run


来源:https://stackoverflow.com/questions/33395675/cocoapods-file-reference-is-a-member-of-multiple-groups

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!