【问题标题】:Xcode Cocoapods Not Finding Framework Header FilesXcode Cocoapods 找不到框架头文件
【发布时间】:2015-12-16 11:33:47
【问题描述】:

因此,我正在开发一个由单独的开发人员开发的旧 Xcode 项目,并且由于 Cocoapods 在我的 Mac 上运行时出现构建错误。第一个错误是“沙箱与 Podfile.lock 不同步”,我可以通过从项目中删除各种 Cocoapods 文件和旧的 xcworkspace 并在终端中运行 pod install 以再次创建所有这些来修复它。新问题是某些类无法从 podfile 列出的框架中找到头文件。

我的理论是因为这是一个旧项目并且旧开发人员没有在 podfile 中的某些框架上设置版本上限,是该项目正在尝试使用在最新更新中已弃用的旧方法/类构架。但是,我不确定如何解决这个问题,因为我尝试在 podfile 中的这些框架上设置版本上限,但没有成功。

【问题讨论】:

    标签: ios iphone xcode cocoapods


    【解决方案1】:

    有两条路径:

    1. 您调查每个框架,估计在项目处于活动状态时可能使用的大概 pod 版本,并使用每个 pod 的特定版本(您可以找到有关配置 pod 版本的信息here 然而,这种解决方案在 90% 的情况下都不起作用,因为 iOS 的发展速度非常快,而且旧框架很可能已经过时并且与最新的变化不兼容。

    2. 您调查每个框架并了解实际发生的变化。您查看每个 pod 具有的标头,了解实际更改的内容并在代码中实施更改。 您从标头开始,确保包含正确的标头,然后开始将代码迁移到最新版本。 大项目通常有migration guides

    没有其他选择。一旦任何项目依赖于外部代码,开发人员就需要确保它是最新的。

    【讨论】:

    • 您发布的第一种方法是我已经尝试过的方法之一,不幸的是,运气不佳。你知道为什么这种方法经常失败吗?在我的印象中,这是 Cocoapods 的主要优势,能够快速轻松地监控和更改每个框架的版本。
    • 是的,这就是好处,但这实际上需要一些时间来定期监控更改(尤其是在大型项目中)、更新集成、了解对整个系统的潜在影响。你错过了几个月,几乎所有的框架都会改变,需要努力适应。这种方法之所以失败,只是因为未触及的项目越多,它拥有的技术债务就越多,而技术债务需要时间资源来保持其滚动。
    • 所以我的想法是对的不会有这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2011-03-08
    • 2012-09-20
    • 2016-09-19
    • 2017-01-17
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多