Xcode没有找到CocoaPods模块

时间:2017-12-23 03:13:19

标签: xcode cocoapods arm64 cocoaasyncsocket

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

但是,当我尝试归档时,它不会编译,我收到错误消息,即无法找到模块CocoaAsyncSocket

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

Build Active Architecture Only: Yes

enter image description here

是否有其他人遇到过与此库或其他Cocoapod库类似的问题?

2 个答案:

答案 0 :(得分:1)

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

尽管第三方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。只要它们匹配,它似乎可以解决问题。

  1. 选择Pods项目
  2. 仅将构建活动架构从“是”更改为“否”。
  3. 您可以尝试使用以下命令更新终端中的cocoapods

    gem update cocoapods

    如果之后没有工作,请进入工作区,单击Pod项目,选择所有Pod目标并将架构设置为(armv7 armv7s arm64)。

答案 1 :(得分:0)

请确保Podfile中的版本很好

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