项目 'Pods' 作为 'Pods.framework' 的隐式依赖项被拒绝,因为它的架构不包含所有必需的架构
Project 'Pods' was rejected as an implicit dependency for 'Pods.framework' because its architectures didn't contain all required architectures
项目 'Pods' 的目标 'AAA-Pods' 作为 'Pods_AAA.framework' 的隐式依赖项被拒绝,因为它的架构 'x86_64' 不包含所有必需的架构 'i386 x86_64' .
这显示为警告,然后出现链接器错误。
可能的解决方案:
- 使用 .xc... 文件打开 Xcode 项目(cocoapods 项目)。
- Select Pods 项目导航器中的项目(左侧蓝色图标)。
- 在项目下,确保 Pods(蓝色图标)已 selected。
- 导航到构建设置。
- 设置仅构建活动架构 = 否(对于调试和发布)。
- 可选:将基本 sdk 设置为最新 iOS(或 select 首选 platform/version)。
注意:此解决方案为我解决了这个问题(警告和链接器错误)。
建议资源:
Github 项目:https://github.com/CocoaPods/CocoaPods/issues/2053
Github 拉取请求:https://github.com/CocoaPods/CocoaPods/pull/1352
对于未来的 Google 员工:
还要确保您的 podfile 目标与您的项目目标相同的 iOS 版本:
例如,如果您在 Xcode 项目中以 iOS 10.0 为目标,您的 podfile 也应在顶部包含 platform :ios, '10.0'
。
我意识到这个问题有点老了,但是在 XCode 更新到 9.4 后我花了 2 天时间解决同样的问题。我发现的是在info.plist
键下required device capabilities
设置了armv7
,本来应该是空白的。希望这对某人有所帮助。
在 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,执行清理,您应该能够 运行 归档过程。
另一个适合我的解决方案。
- 打开 .xcodeproject(不是 .xcodeworkspace)
- 找到IOS部署目标
- 选择你的最新版本(我的最新版本是11.4)
我最近在 迁移到 Xcode 10.1 后遇到了同样的问题。
使用调试配置构建工作正常,但是使用发布配置归档时生成此警告。
然后存档会失败,因为在主项目中,所有引用 Pods 的 模块导入 都失败了。
检查项目的构建设置我意识到iOS部署目标 为我的发布配置显示不同的值。
iOS 10.0,而我的 Podfile 设置为 platform :ios, '11.0'
。
项目 'Pods' 的目标 'AAA-Pods' 作为 'Pods_AAA.framework' 的隐式依赖项被拒绝,因为它的架构 'x86_64' 不包含所有必需的架构 'i386 x86_64' .
这显示为警告,然后出现链接器错误。
可能的解决方案:
- 使用 .xc... 文件打开 Xcode 项目(cocoapods 项目)。
- Select Pods 项目导航器中的项目(左侧蓝色图标)。
- 在项目下,确保 Pods(蓝色图标)已 selected。
- 导航到构建设置。
- 设置仅构建活动架构 = 否(对于调试和发布)。
- 可选:将基本 sdk 设置为最新 iOS(或 select 首选 platform/version)。
注意:此解决方案为我解决了这个问题(警告和链接器错误)。
建议资源:
Github 项目:https://github.com/CocoaPods/CocoaPods/issues/2053 Github 拉取请求:https://github.com/CocoaPods/CocoaPods/pull/1352
对于未来的 Google 员工: 还要确保您的 podfile 目标与您的项目目标相同的 iOS 版本:
例如,如果您在 Xcode 项目中以 iOS 10.0 为目标,您的 podfile 也应在顶部包含 platform :ios, '10.0'
。
我意识到这个问题有点老了,但是在 XCode 更新到 9.4 后我花了 2 天时间解决同样的问题。我发现的是在info.plist
键下required device capabilities
设置了armv7
,本来应该是空白的。希望这对某人有所帮助。
在 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,执行清理,您应该能够 运行 归档过程。
另一个适合我的解决方案。
- 打开 .xcodeproject(不是 .xcodeworkspace)
- 找到IOS部署目标
- 选择你的最新版本(我的最新版本是11.4)
我最近在 迁移到 Xcode 10.1 后遇到了同样的问题。
使用调试配置构建工作正常,但是使用发布配置归档时生成此警告。 然后存档会失败,因为在主项目中,所有引用 Pods 的 模块导入 都失败了。
检查项目的构建设置我意识到iOS部署目标 为我的发布配置显示不同的值。
iOS 10.0,而我的 Podfile 设置为 platform :ios, '11.0'
。