项目'Pods'被拒绝作为'Pods.framework'的隐式依赖项,因为它的体系结构不包含所有必需的体系结构

问题描述 投票:24回答:6

项目'Pods'的目标'AAA-Pods'被拒绝为'Pods_AAA.framework'的隐式依赖项,因为其架构'x86_64'不包含所有必需的架构'i386 x86_64'。

这显示为警告,然后出现链接器错误。

cocoapods xcode8
6个回答
58
投票

可能解决方案

  1. 使用.xc ...文件打开Xcode项目(cocoapods项目)。
  2. 在项目导航器中选择Pods项目(左侧的蓝色图标)。
  3. 在“项目”下,确保选中“窗格”(蓝色图标)。
  4. 导航到“构建设置”。
  5. 仅设置构建活动架构=否(用于调试和发布)。
  6. 可选:将base sdk设置为最新的iOS(或选择首选平台/版本)。

注意:此解决方案为我解决了此问题(警告和链接器错误)。

建议资源:

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


20
投票

对于未来的Google员工:还要确保您的podfile定位到项目所针对的相同iOS版本:

例如,如果您在Xcode项目中定位iOS 10.0,则您的podfile也应包含顶部的platform :ios, '10.0'


6
投票

在一个关于Xcode 9.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,执行干净,您应该能够运行存档过程。


1
投票

我意识到这个问题有点老了,但是在XCode更新到9.4后我花了两天时间对抗同一个问题。我发现的是在密钥info.plist required device capabilities下的armv7,它应该是空白的。希望这有助于某人。


1
投票

迁移到Xcode 10.1后,我最近遇到了同样的问题。

使用Debug配置构建工作正常,但使用Release配置进行存档会产生此警告。然后归档将失败,因为在主项目中,所有引用Pod的模块导入都失败了。

检查项目的构建设置我意识到iOS部署目标为我的Release配置显示了不同的值。 iOS 10.0,而我的Podfile设置为platform :ios, '11.0'

enter image description here


0
投票

另一个适合我的解决方案。

  1. 打开.xcodeproject(不是.xcodeworkspace)
  2. 查找IOS部署目标
  3. 选择你拥有的最新版本(我的最新版本是11.4)
© www.soinside.com 2019 - 2024. All rights reserved.