CocoaPods 更新 RestKit #import "RKObjectMapping.h" 文件未找到

Posted

技术标签:

【中文标题】CocoaPods 更新 RestKit #import "RKObjectMapping.h" 文件未找到【英文标题】:CocoaPods update RestKit #import "RKObjectMapping.h" file not found 【发布时间】:2015-10-27 14:46:42 【问题描述】:

我想更新我的一些项目 pod,在运行 pod update "some_framework" 并尝试构建项目后出现此错误:

找不到导入“RKObjectMapping.h”文件

当前的 CocoaPod 版本是 0.39.0 我尝试降级到 0.38.2 及更低但没有任何成功,XCode 版本是6.4 我尝试将构建设置中的搜索路径配置从非递归更改为递归,但再次失败。

所以我不知道下一步该做什么,因为我需要在项目中进行一些更新,而 RestKit 是与服务器端合作的主要框架。

Pod 文件:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '7.1'
pod 'RestKit', '~> 0.24.1'
pod 'EZForm', '~> 1.1.0'
pod 'OCMock', '~> 3.0'
pod 'ImoDynamicTableView', '~> 1.1.273'
pod "ImoDynamicPopUp"
pod 'Masonry', '~> 0.6'

这是错误的样子,在 Xcode 中:Error image

【问题讨论】:

你的 podfile 包含什么? 我已经编辑了问题。 有一个等待合并的提交修复了这个问题,将是 v0.26.0 @Wain 有什么想法什么时候会发生? 【参考方案1】:

聚会有点晚了,我在 cooca pod 0.39.0 和 restkit 0.24.1 上遇到了同样的问题,将 restkit 更新到 0.26.0 并修复了问题

【讨论】:

【参考方案2】:

公共头文件中的导入应该是#import <RestKit/Subdirectory/RKHeader.h> 而不是#import "RKHeader.h"

这是 RestKit 与未来 CocoaPods 版本兼容所必需的,因为 中引入了 CocoaPods/CocoaPods#4057(HEADER_SEARCH_PATHS 将不再递归构造) >0.39.0.beta.1.

【讨论】:

我的 restkit 导入看起来像 #import <RestKit/RestKit.h>【参考方案3】:

我知道这很旧,但解决此问题的最简单方法是在目标设置中的Header Seach Paths 下的Header Seach Paths 中添加$PODS_ROOT(并将其设置为递归)。

【讨论】:

【参考方案4】:

几天前有同样的问题。看来我有两个 CocoaPods 版本 0.39.0 和 0.38.2。当我删除 0.39.0 并更新 pod 时,它起作用了。 在终端中使用gem list 来查看已安装的gem。

【讨论】:

我按照你的写法做了,还有其他错误Undefined symbols for architecture arm64: "_RKLogCoreDataError", referenced from: ___33-[RKEntityByAttributeCache load:]_block_invoke in libRestKit.a(RKEntityByAttributeCache.o) ___43-[RKManagedObjectImporter finishImporting:]_block_invoke in libRestKit.a(RKManagedObjectImporter.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 可能会尝试删除cocoapods并重新安装它们,并删除DerivedData,模块缓存,重新加载Xcode等。RestKit有时会发生这种错误。 我已经尽力按照你的建议去做,但没有帮助:(我不知道这里出了什么问题。 很久以前,RKObjectMapping.h 也有同样的问题,而 pod 没有问题。但是第二天它就消失了,即使我没有做任何改变。很奇怪。【参考方案5】:

我遇到了同样的问题,我确实使用了 0.26.0 版本的 Restkit,但使用了 0.38.2 的可可豆荚。之后我唯一要更改的是选择“Project Pods”,然后在“Build Settings -> Build Active Architecture Only”中更改为NO强>


[更新]!!!! 您现在可以按照github 的这篇帖子中@sajjon 的回答来使用cocopods 版本:0.39.0、1.0.0 和1.0.1

如果有人在使用 RestKit 0.26.0 和 Cocoapods 1.0.1 时遇到问题, 希望这会有所帮助!

此解决方案至少在 2016-06-03 有效,但由于它使用 特定的 git 分支可能会被合并,所以如果没有 为你工作请检查这个 git 分支是否已经 合并/移动/删除。

在一切之前清理干净

退出 Xcode

rm -rf Pods 
rm -rf MyApp.xcworkspace   
rm -rf ~/Library/Caches/CocoaPods 
rm -rf ~/Library/Developer/Xcode/DerivedData 

Use mcfedr's RestKit fork

必须与 AFNetworking 的“可达性”分支一起使用

pod 'AFNetworking', :git => 'https://github.com/mcfedr/AFNetworking.git', :branch =>
'reachability' 
pod 'RestKit', :git => 'https://github.com/mcfedr/RestKit.git', :branch => 'pods1' Use module

桥接头中的导入语法

@import RestKit;

【讨论】:

【参考方案6】:

更新到 Cocoapods 1.1.1 和 RestKit 0.26.0 并且运行良好。

【讨论】:

为我工作。赞克斯! 很高兴知道!!

以上是关于CocoaPods 更新 RestKit #import "RKObjectMapping.h" 文件未找到的主要内容,如果未能解决你的问题,请参考以下文章

没有带有 cocoapods 和 swift 的模块“RestKit”

RestKit & Cocoapods:映射操作失败/没有找到任何可映射的值

错误:“沙箱与 Podfile.lock 不同步...”在使用 cocoapods 安装 RestKit 后

通过 Cocoapods 安装 RestKit 0.20.0 后基础类型未知

Restkit 0.20.x cocoapods 安装问题 - 编译但找不到 RestKit 的导入

通过 CocoaPods 在 github 上使用 Restkit 的一个分支?