【问题标题】:Xcode doesn't find CocoaPods moduleXcode 找不到 CocoaPods 模块
【发布时间】:2023-03-04 03:05:02
【问题描述】:

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

但是,当我尝试存档时,它无法编译,并且我收到模块 CocoaAsyncSocket 找不到的错误消息。

我注意到它与不同的架构有关。当我为自己的设备构建它的唯一构建为“arm64”时,当我为arm64armv7armv7s 归档它的构建时。如果我将归档的构建设置更改为仅为arm64 构建,我就可以归档。但我当然希望能够为所有架构构建它。 下图显示了它只为arm64(在我的情况下)构建时的设置;

Build Active Architecture Only: Yes

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

【问题讨论】:

    标签: xcode cocoapods arm64 cocoaasyncsocket


    【解决方案1】:

    确保 Podfile 中的版本是好的

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

    【讨论】:

    • 天哪,我的项目部署目标与 Podfile 中设置的平台不同步,导致 Pods 目标被忽略。谢谢!
    【解决方案2】:

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

    尽管在 3rd-party pod 中缺乏通用的 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 建议匹配 Xcode 项目中的 Debug 设置,而不是更改 Pod 的 Build Active Architecture Only。只要它们匹配,似乎就可以解决问题。

    1. 选择 Pods 项目
    2. 将 Build Active Architecture Only 从 Yes 更改为 No。

    或者

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

    gem update cocoapods

    如果在那之后还是不行,进入你的工作区,点击 Pod 项目,选择所有 Pod 目标并将 Architectures 设置为 (armv7 armv7s arm64)。

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 2014-11-23
      • 2015-12-13
      • 1970-01-01
      • 2020-09-09
      相关资源
      最近更新 更多