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 后基础类型未知