【求助】IOS 升级Xcode14后,构建失败:Multiple commands produce?-灵析社区

万码UQ7VOTZJ

详细的错误内容如下,原本podfile中引入了一个本地库 ``` pod 'LBFoundation', :path => './Specs/foundation' ``` 然后会生成两个target, LBFoundation.common和LBFoundation.common-Service(本人IOS小白,也不知道为什么会有两个target) ``` Showing All Messages Prepare build note: Building targets in dependency order error: Multiple commands produce '/Project/DerivedData/Product1/Build/Intermediates.noindex/ArchiveIntermediates/Product1/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/LBFoundation.framework' note: Target 'LBFoundation.common' (project 'Pods') has create directory command with output '/Project/DerivedData/Product1/Build/Intermediates.noindex/ArchiveIntermediates/Product1/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/LBFoundation.framework' note: Target 'LBFoundation.common-Service' (project 'Pods') has create directory command with output '/Project/DerivedData/Product1/Build/Intermediates.noindex/ArchiveIntermediates/Product1/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/LBFoundation.framework' Building targets in dependency order Multiple commands produce '/Project/DerivedData/Product1/Build/Intermediates.noindex/ArchiveIntermediates/Product1/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/LBFoundation.framework' Computing target dependency graph and provisioning inputs Create build description Build description signature: 88c15e2173a8937894d3334eb649cc15 Build description path: /Project/DerivedData/Product1/Build/Intermediates.noindex/ArchiveIntermediates/Product1/IntermediateBuildFilesPath/XCBuildData/88c15e2173a8937894d3334eb649cc15.xcbuilddata ``` 看网上的问题应该是原本该项目的编译系统用的是Legacy Build Sysytem,但是14后统一只能用New Build System。而新的编译方式会产生上述问题,不知道怎么解决。 哪位大佬能指点一下,感激不尽。 ``` Xcode版本: 14.3 CocoaPods版本: 1.12.0 ``` podfile内容就不贴出来了。直接回答区贴答案吧。

阅读量:201

点赞量:0

问AI
感谢Stephanie老哥,我贴一下答案吧。 最后发现是由于podfile中多个target都有 pod 'LBFoundation', :path => './Specs/foundation' 例如我有个主工程 project1, 同时有两个target 'NotificationService'和'project1WidgetExtension'。主工程依赖这两个target。 cocoapods在install LBFoundation时会生成两个target, 'LBFoundation.common'和'LBFoundation.common-Service'. 这可能是由于依赖的两个工程里只引用了LBFoundation中的某个部分,比如LBFoundation/Service有关。 所以install的时候会生成两个不一样的target, 然后archive时两个target又都会生成LBFoundation.framework导致冲突(这个不清楚内部逻辑,感觉是这样) 解决方案是再单独pod一下LBFoundation/Service,最终podfile如下(隐藏了无关信息): source 'https://github.com/CocoaPods/Specs.git' platform :ios, "12.0" inhibit_all_warnings! def private_develop_share_pods # 省略 pod 'LBFoundation', :path => './Specs/foundation' pod 'LBFoundation/Service', :path => './Specs/foundation' # 省略 end target 'project1' do project 'project1.xcodeproj' use_frameworks! private_develop_share_pods # 省略 end target 'NotificationService' do project 'project1.xcodeproj' use_frameworks! private_develop_share_pods # 省略 end target 'project1WidgetExtension' do project 'project1.xcodeproj' use_frameworks! private_develop_share_pods # 省略 end 省略 这个模块具体看你库里用的什么模块,我看github上也有老哥是这样解决的。 然后再pod install,就可以看到pods下只剩下一个LBFoundation的target了。此时archive就不会报Multiple commands produce的错误了