使用 Cocoapods 动态框架导入 RestKit 失败

Fail to Import RestKit with Cocoapods Dynamic Frameworks

我安装了 cocoapods 的预发布版本 0.26,并尝试安装最新版本的 RestKit。在我的 podfile 中,我打开了 use_frameworks! 标志以强制 cocoapods 使用动态框架。

import RestKit 放入我的 swift 文件会导致构建失败:'RKValueTransformers.h' file not found。 RestKit 设置为使用少数其他库并将它们的 headers 包含到项目中(AFNetworking、RKValueTransformers、TransitionKit 等)

根据 cocoapod authors 的一篇文章,我认为问题在于导入和包含这些库的方式需要更改才能与动态框架和 cocoapods 一起使用。自动生成的伞文件需要导入这些文件以供使用,或者 RestKit 需要使用 @import RKValueTransformers#import <RKValueTransformers/RKValueTransformers.h>.

导入这些库

我不是 Objective C、Cocoapods 或 RestKit 方面的专家,所以我想看看是否有人已经解决了这个问题,而我做错了什么,或者是否需要对 RestKit 进行更改。

这是目前 RestKit 中的一个错误。 Sam Giddin has an open PR 现在可以解决问题。我做了一个 RestKit 的分支,我在我的项目中使用它和 PR 的提交来解决这个问题,直到它们合并到修复中并发布一个新版本。

我发布了对 similar question

的回答

这里是答案的直截了当的副本,所以这不是 link 唯一的答案:)

I've had a long struggle with this, too, while I was building a private Swift-Framework-Pod that depends on RestKit. After a long fight, I forked RestKit and hacked a workaround.

The drawbacks are, you have to use Cocoapods 0.39, which is pretty legacy and the hacked version of RestKit is forked of 0.25.0, so it's also not the newest of the new.

To use the fork, in your Podfile, replace pod 'RestKit', ... with pod 'RestKit', :git => 'https://github.com/resmio/RestKit', :tag => 'v0.25.0-use-frameworks'

Also, you might need to use a hacked version of AFNetworking, which also made some problems. Same here, replace pod 'AFNetworking', ... with pod 'AFNetworking', :git => 'https://github.com/resmio/AFNetworking', :tag => 'v1.3.4-use-frameworks'

I'd be glad if you'd let me know if that wrked for you and if so, spread the word! :)