【问题标题】:CocoaPods generates invalid project file (header not found)CocoaPods 生成无效的项目文件(找不到头文件)
【发布时间】:2013-07-19 07:38:08
【问题描述】:

我有一个项目文件,其中的 Podfile 如下所示:

platform :ios, '7.0' 

def import_pods
pod 'Specta', '0.1.8' 
pod 'Expecta', '0.2.1' 
pod 'RestKit', '0.20.3' 
pod 'MagicalRecord', '2.1' 
pod 'RestKit/Testing', '0.20.3' 
end 

link_with 'LocalMedTests' 
import_pods

当我运行 pod install 时,它会为我的项目生成 Podfile.lock、Pods 目录和工作区。当我打开工作区进行构建时,我收到如下错误:'RestKit.h' file not found.

这似乎只是 RestKit 的一个问题,但我无法克服这些错误以查看是否还有更多错误。 restkit 标头位于 Pods/Headers 中。它们正确地包含在 Pods.xcconfig 中。这是一个很好的衡量标准:

FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" 

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 

HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/Expecta" "${PODS_ROOT}/Headers/MagicalRecord" "${PODS_ROOT}/Headers/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit/CoreData" "${PODS_ROOT}/Headers/RestKit/RestKit/Network" "${PODS_ROOT}/Headers/RestKit/RestKit/ObjectMapping" "${PODS_ROOT}/Headers/RestKit/RestKit/Support" "${PODS_ROOT}/Headers/RestKit/RestKit/Testing" "${PODS_ROOT}/Headers/SOCKit" "${PODS_ROOT}/Headers/Specta" "${PODS_ROOT}/Headers/TransitionKit" 

OTHER_LDFLAGS = -ObjC -framework CFNetwork -framework CoreData -framework Foundation -framework MobileCoreServices -framework Security -framework SenTestingKit -framework SystemConfiguration 

PODS_ROOT = ${SRCROOT}/Pods

我已经尝试清理和清理构建文件夹。没关系 - 我总是得到 header not found 错误。

我还应该补充一点,Pods.xcconfig 指定的所有头目录都应该包含在目标中。

对此有什么想法吗?我已经在这个项目中使用 CocoaPods 几个月了,没有任何问题,最近有什么变化吗?

【问题讨论】:

  • 如何在#imports 上导入标题?
  • #import <RestKit/RestKit.h> 但我尝试了几种变体,但都没有运气。在我删除 /Pods 并让 CocoaPods 再次生成它们(和工作区)之前,它一直运行良好。
  • 我在使用我们的 cocoapod 安装程序(私有 cocoapod 存储库)时遇到了类似的问题。突然之间,标头没有链接。我一直在跟踪几个线索,确保 Pods.xcconfig 看起来正确,但我无法让它工作。
  • 我并没有真正找到解决方案。我恢复到我的旧工作区文件(所有内容都正确链接),并确保在正确的位置引用了 pods.xcconfig。从头开始仍然对我不起作用,我不知道为什么。
  • 我已经尝试过 [sudo] gem update 但仍然没有运气。我有一个运行良好的旧项目,但是如果我现在进行 pod install ...它会给出类似项目标头未找到的问题 :(

标签: ios objective-c restkit cocoapods


【解决方案1】:

这解决了我的问题

HEADER_SEARCH_PATHS 在您的项目构建设置下添加$(inherited)

也对所有 TAGETS 执行此操作

将 Arcgitectures 更改为标准 armv7

https://stackoverflow.com/a/12142790/1294448

【讨论】:

  • 注意:由于苹果限制使所有应用程序都以 64 位运行,因此将架构制作为 amrv7 将不再有效。但是不要忘记为 Pod 和项目制作相同的架构,即(标准架构)。还将 Build Active Architecture Only 设置为 NO。
  • 我在HEADER_SEARCH_PATHS 中有$(inherited)。 Cmd + K 解决了我的问题。感谢您发布这个问题。
【解决方案2】:

对我来说,问题在于Other Linker FlagsRunpath Search Paths,它们没有继承在 xcconfig 上定义的设置。以下调整解决了我的问题:

其他链接器标志

$(inherited)

运行路径搜索路径

$(inherited)
@executable_path/Frameworks

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2012-08-13
    相关资源
    最近更新 更多