项目' Pods'被拒绝作为“Pods.framework”的隐含依赖。因为它的架构并不包含所有必需的架构

时间:2017-06-15 05:56:16

标签: cocoapods xcode8

目标' AAA-Pods'对于项目' Pods'作为“Pods_AAA.framework”的隐含依赖被拒绝了。因为它的架构' x86_64'没有包含所有必需的架构' i386 x86_64'。

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

6 个答案:

答案 0 :(得分:56)

可能的解决方案:

  1. 使用.xc ...文件打开Xcode项目(cocoapods项目)。
  2. 在项目导航器中选择Pods项目(左侧蓝色图标)。
  3. 在“项目”下,确保选中“窗格”(蓝色图标)。
  4. 导航至Build Settings。
  5. 仅设置构建活动架构=否(用于调试和发布)。
  6. 可选:将base sdk设置为最新的iOS(或选择首选平台/版本)。
  7. 注意:此解决方案为我解决了此问题(警告和链接器错误)。

    建议资源:

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

答案 1 :(得分:17)

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

例如,如果您在Xcode项目中定位iOS 10.0,那么您的podfile也应该包含0xc1e5017fbc68aa3e56aa580708de9aa123d62d18

答案 2 :(得分:5)

在Xcode 9.4.1上一个非常新的项目中,问题在于我的Podfile的部署目标设置为react.js,而我的项目的iOS部署目标设置为10.3。

这导致生成的Pods项目以iOS 11.0为目标(仅受arm64体系结构上的64位设备支持),但是由于我的主要项目针对10.3,并且包含armv7设备,因此在归档Release版本时此方法不起作用。发布版本还可以自然地构建非活动架构(除非您仅支持iOS 11设备)。

然后的解决方法是仅更改Podfile的部署目标以匹配您的主项目的部署目标,在我的情况下为platform :ios, '11.0'。之后,运行platform :ios, '10.3',然后应重新生成Pods项目。启动Xcode,执行清理,您应该能够运行存档过程。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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

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

enter image description here

答案 5 :(得分:0)

另一种对我有用的解决方案。

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