详细的错误内容如下,原本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内容就不贴出来了。直接回答区贴答案吧。
感谢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如下(隐藏了无关信息):这个模块具体看你库里用的什么模块,我看github上也有老哥是这样解决的。
然后再
pod install
,就可以看到pods下只剩下一个LBFoundation
的target了。此时archive就不会报Multiple commands produce
的错误了link_stat "/project1Path/../../iphoneos/AFNetworking.framework" failed: No such file or directory (2)
后面archive的时候还有个错误,是Xcode14.3官方的错误。也顺带贴一下
错误信息:
目前最新版本Xcode14.3存在这个问题,可以选择降级到14.2或者修改
Pods/Target Support Files/Pods-projectName/Pods-projectName-frameworks
文件内的44行source="$(readlink "${source}")"
修改为source="$(readlink -f "${source}")"
因为每次install都会被覆盖重写,补充一下动态修改脚本
github上对应issues: https://github.com/CocoaPods/CocoaPods/issues/11808
并且该修复已经被合并,下次版本应该会发布修复: https://github.com/CocoaPods/CocoaPods/pull/11828
再次感谢Stephanie老哥