Xcode 没有找到 CocoaPods 模块

Xcode doesn't find CocoaPods module

我正在为我正在编写的应用程序使用 CocoaAsyncSocket 库。 当我编译并 运行 它在我自己的设备上时没有问题并且 Xcode 能够找到 CocoaAsyncSocket.

然而,当我尝试存档时,它不会编译,我收到错误消息,指出找不到模块 CocoaAsyncSocket

我注意到它与不同的体系结构有关。当我为自己的设备构建它时,它只为 "arm64" 构建,而当我为 arm64armv7armv7s 归档它的构建时。如果我将存档的构建设置更改为仅为 arm64 构建,我就可以存档。但我当然希望能够为所有架构构建它。 下图显示了它只为 arm64 构建时的设置(在我的例子中);

Build Active Architecture Only: Yes

有没有其他人遇到过这个库或其他 Cocoapod 库的类似问题?

许多开发人员已经接受了即将到来的 64 位未来,但并非所有第三方库都支持此架构,包括那些可通过 CocoaPods.

安装的库

尽管第 3 方 pods 缺乏通用的 64 位支持,CocoaPods 仍然在其生成的目标的构建设置中包含 arm64 架构(通过 ARCHS_STANDARD_INCLUDING_64_BIT) .如果您的应用程序的依赖项不支持 arm64,或者您出于其他原因只想为 armv7 和 armv7s 构建,这可能会导致问题。

您可以解决此问题,只需将以下内容添加到 Podfile 的底部,将 ARCHS 构建设置恢复为 ARCHS_STANDARD:

# Remove 64-bit build architecture from Pods targets
post_install do |installer|
  installer.project.targets.each do |target|
    target.build_configurations.each do |configuration|
      target.build_settings(configuration.name)['ARCHS'] = '$(ARCHS_STANDARD_32_BIT)'
    end
  end
end

注:

CocoaPods Troubleshooting Guide recommends matching the Debug setting in your Xcode project, rather than changing the Pod's Build Active Architecture Only. As long as they match it seems to fix the problem.

  1. Select Pods 项目
  2. 将“仅构建活动架构”从“是”更改为“否”

您可以尝试在终端中使用以下命令更新 cocoapods

gem update cocoapods

如果之后它不起作用,请进入您的工作区,单击 Pod 项目,select 所有 Pod 目标并将架构设置为 (armv7 armv7s arm64)。

确保 Podfile 中的版本正确

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'