由于其架构不包含所有必需的架构,因此“Pods”项目被拒绝作为“Pods.framework”的隐式依赖项。

29
项目“Pods”的目标“AAA-Pods”被拒绝作为“Pods_AAA.framework”的隐式依赖项,因为它的架构“x86_64”不包含所有所需的架构“i386 x86_64”。这个警告会导致链接器错误。

这个警告也会在Xcode 9.3中显示,但可能是因为我的项目代码是使用旧版本的Xcode创建的。 - Pramod More
6个回答

64
可能的解决方案:
  1. 使用.xc...文件打开Xcode项目(CocoaPods项目)。
  2. 在项目导航器中选择Pods项目(左侧蓝色图标)。
  3. 在Project下,确保选中了Pods(蓝色图标)。
  4. 导航到Build Settings。
  5. 将Build Active Architectures Only设置为No(对于调试和发布均要设置)。
  6. 可选:将基础SDK设置为最新的iOS(或选择首选平台/版本)。

注意:这个解决方案(警告和链接错误)对我有效。

建议的资源:

Github项目:https://github.com/CocoaPods/CocoaPods/issues/2053 Github拉取请求:https://github.com/CocoaPods/CocoaPods/pull/1352


2
Pod生成应默认设置为“否”。每次都会让我困扰。 - Kirill Kulakov
这个解决方案对我来说很有效。非常感谢! :) 应该选择这个作为正确答案。 - Behrad3d
它对我不起作用。我在这里创建了一个讨论 https://forums.swift.org/t/no-such-module-popupdialog-on-swift3/14722/6 - Francis Rodrigues
终于完成了:D 谢谢您 :) - Sahil

29

给未来的谷歌开发者们:

同时确保你的podfile与你的项目目标相同的iOS版本:

例如,如果你在Xcode项目中的目标是iOS 10.0,那么你的podfile顶部也应包含platform :ios, '10.0'


1
那是我的问题。我在Podfile文件中更改了该值,然后它就起作用了。谢谢。 - Giacomo M

8
在Xcode9.4.1的一个全新项目中,我的Podfile的部署目标设置为platform :ios, '11.0',而我的项目iOS部署目标设置为10.3。
这导致生成的Pods项目以iOS 11.0为目标(仅由arm64架构上的64位设备支持),但由于我的主要项目针对的是10.3并包括armv7设备,因此在归档发布版本时不起作用,因为发布版本本质上还会建立非活动架构(除非您只支持iOS 11设备)。
解决方法就是将Podfile的部署目标简单地更改为与您的主项目匹配,在我的例子中是platform :ios, '10.3'。之后,运行pod update,Pods项目应该重新生成。启动Xcode,执行清理操作,然后您应该能够运行归档进程。

这个答案拯救了我的一天。 - mkhoshpour
下次你来以色列的时候我请你喝啤酒! - Ziv
这个可能能够拯救我的一天:/ 谢谢! - zmit

1

我知道这个问题有点老了,但在XCode升级到9.4之后,我花了两天时间解决了同样的问题。我发现在info.plist中的关键字required device capabilities下,armv7被设置为应该为空白。希望这能帮助到某些人。


1
注意:项目和 Pod 项目的构建设置中有效的架构需要与 armv7、armv7s 和 arm64 匹配。 - Mark Dail

1
我最近在迁移到Xcode 10.1之后遇到了同样的问题。使用Debug配置进行构建没有问题,但是使用Release配置进行归档会生成此警告。然后,由于主项目中所有引用Pods的模块导入都失败了,因此归档将失败。检查项目的Build Settings时,我意识到iOS Deployment Target在我的发布配置中显示了不同的值。iOS 10.0,而我的Podfile设置为platform:ios,'11.0'。

enter image description here


0

这是我使用的另一种解决方案。

  1. 打开.xcodeproject文件(而不是.xcodeworkspace文件)
  2. 找到IOS部署目标
  3. 选择您拥有的最新版本(我的最新版本是11.4)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接