【问题标题】:Cocoapods causing "library not found" and header "file not found" errors for Xcode Simulator but not deviceCocoapods 导致 Xcode Simulator 但不是设备的“找不到库”和标头“找不到文件”错误
【发布时间】:2019-03-26 07:40:09
【问题描述】:

我在我的 Xcode 项目中使用 Cocoapods,但在使用模拟器构建时似乎会导致“找不到库”和头文件“找不到文件”错误,但在我连接设备或使用“通用 iOS 设备”。

我的 Podfile 很简单。我那里只有一个 pod,用于 Microsoft 的 ADAL SDK,用于单点登录。当我使用 use_frameworks 时!在我得到的 Podfile 中:

fatal error: 'ADAL/ADAL.h' file not found

换行

#import <ADAL/ADAL.h>

但如果我使用 use_modular_headers!而不是use_frameworks!我明白了:

ld: warning: directory not found for option '-L/Users/memyself/Documents/iOS_Projects/ASSIST-main/ASSIST-main/DerivedData/MyApp/Build/Products/Debug-iphonesimulator/ADAL'
ld: library not found for -lADAL

即使我禁用了 both 这两者,它也可以为设备和“通用 iOS 设备”构建良好,但失败并出现 'ADAL/ADAL.h' file not found 错误。

是的,对于这类错误 (such as here) 有很多 SO 问题和答案,但尝试它们没有成功。具体来说,我在推荐的搜索路径中使用 $(inherited),将 enable bitcode 设置为 NO,确保我打开的是 xcworkspace 而不是 xcodeproj 文件,并尝试过

$ pod deintegrate
$ pod clean
$ rm Podfile

此外,我的应用程序使用 AWS 和 Firebase,我遇到了同样的问题,但能够通过手动添加必要的框架来修复它们。但是,我没有 ADAL 框架,坦率地说,我需要解决这个问题,这样我才能使用 Cocoapods 来安装和管理我的 AWS 和 Firebase 依赖项。仅在为模拟器构建时失败,非常可疑,哪些项目设置可能导致此问题?

【问题讨论】:

  • 这很奇怪,我只是尝试pod 'ADAL', '~&gt; 4.0',它在设备和模拟器中都取得了成功。您是否尝试删除您的 DerivedData 文件夹?
  • 是的。我尝试的第一件事。我什至将其在 Preferences->Locations 中的位置从“default”更改为“relative”,以强制重新设置。
  • 这是你使用 btw 的 cocoapod 版本。可以尝试更新一下吗?
  • 我使用的是最新版本,1.6.0。实际上,我找到了解决方案,但不知道为什么它可以解决问题。在我的 Podfile 中,我有:平台:ios,'9.0',在我的项目中,我的部署目标是 9.0。但是当我将两者都更改为 11.0 时,问题就消失了。

标签: ios xcode cocoapods header-files adal


【解决方案1】:

更新部署目标和 Podfile 'platform' 目标。从 9.0 更新到 11.0。在您的 Podfile 中更改此行

平台:ios,'11.0' 这在您的目标和项目中:

【讨论】:

  • 我能够构建良好,但是当我更新 cocoapods 时开始出现间歇性问题,然后当我不得不为我的项目下载新的工作副本时,我真的卡住了。当我瞄准 9.0.0 时,它正在寻找头文件。仅供参考。此外,我还能够为我的设备构建调试版本。设备不会自动构建发布版本(我不认为)。
【解决方案2】:

尝试仅在构建设置中更改构建活动架构。

【讨论】:

  • 谢谢哥们!!经过数小时的搜索终于有了答案
猜你喜欢
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 2015-12-13
  • 2016-09-19
  • 1970-01-01
  • 2020-07-02
相关资源
最近更新 更多