RKObjectMapping.h 未找到

RKObjectMapping.h Not Found

我"pod update",我现在的RestKit版本是0.25.0,我的RKValueTransformers是1.1.2,出现错误"RKObjectMapping.h" not found.

RestKit 在新版本中有什么变化,我检查它 github 找不到任何东西。

以下步骤可以重现错误:

1) 创建一个新项目

2) pod 初始化

Podfile 看起来像:

platform :ios, '8.3'
#pod 'RestKit', '~> 0.20.0'
#pod 'RestKit', '~> 0.24.1'
pod 'RestKit'

所有不同版本的情况,问题都是一样的

3) 打开.xcworkspace

4) 在viewcontroller.m

#import <RestKit/ObjectMapping/RKObjectMapping.h>
#import <RestKit/ObjectMapping/RKRelationshipMapping.h>
#import <RestKit/Network/RKResponseDescriptor.h>
#import <RestKit/Network/RKObjectRequestOperation.h>
#import <RestKit/Support/RKLog.h>
#import <RestKit/CoreData/RKEntityMapping.h>
#import <RestKit/Network/RKObjectManager.h>

#import "RKObjectMapping.h"
#import "RKRelationshipMapping.h"
#import "RKResponseDescriptor.h"
#import "RKObjectRequestOperation.h"
#import "RKLog.h"
#import "RKEntityMapping.h"
#import "RKObjectManager.h"

错误依旧:"RKObjectMapping.h" not found in a file of RestKit Pod

注意:我正在使用 Xcode 7-beta5,Objective-C

经过一段时间的挣扎,我注意到错误不是来自 RestKit。它来自升级最新版本的cocoapods (0.39.beta.4).

Header 搜索路径不再处于递归模式。

解决方法是将 cocoapods 的版本降级到 0.38.0。

1) 移除最新版本的cocoapod

sudo gem uninstall cocoapods

2) 安装0.38.0版本

sudo gem install cocoapods -v 0.38.0

希望能帮到别人。

更新:

感谢 Vig,我们可以使用特定版本制作 pod:

pod _0.38.0_ update
pod _0.38.0_ install

当您不想接触 cocoapods 时,有一种简单的方法可以解决此问题。因为修复它们本身很麻烦。我已按如下方式解决我的问题:

Click on your project file
Then go to build settings search for "header search path"
With the drop down just make them recursive.

您应该寻找以下内容:

${PODS_ROOT}/Headers/Public/AFNetworking
${PODS_ROOT}/Headers/Public/Bolts
${PODS_ROOT}/Headers/Public/ISO8601DateFormatterValueTransformer
${PODS_ROOT}/Headers/Public/RKValueTransformers
${PODS_ROOT}/Headers/Public/RestKit 
${PODS_ROOT}/Headers/Public/SOCKit
${PODS_ROOT}/Headers/Public

我通过构建 pods 作为框架解决了这个问题。

use_frameworks!

这最终在 RestKit 的开发分支中得到修复,我认为最终补丁在 1d8f3e332 中。

希望它能尽快合并到 master 中。

目前,如果您胆子大,可以使用

pod 'RestKit', :git => 'git@github.com:RestKit/RestKit.git', :commit => '1d8f3e3325d959094a3f96c832bf9f54c9c48df3'