找不到metamacros.h,ReactiveCocoa通过CocoaPods

时间:2015-06-06 11:52:18

标签: ios reactive-cocoa

当使用CocoaPods安装ReactiveCocoa时,缺少一些必需的文件:

metamacros.h,在RACTuple.h中导入 EXTScope.h,在NSNotificationCenter + RACSupport.h中导入

我尝试了不同的版本:2.1.8,2.4.7,2.5.0。

重现的步骤:

  • 使用名为“RCFail”的XCode单视图应用程序创建一个新项目
  • 将Podfile添加到包含以下内容的目录:

    pod'ReactiveCocoa','〜> 2.4.7'

(或现在获得2.5.0的任何其他版本或现在的显式版本)

  • 使用XCode 6.3.2
  • 打开RCFail.xcworkspace
  • 构建项目(或至少,尝试构建)

编译器输出:

RCError/Pods/ReactiveCocoa/ReactiveCocoa/RACTuple.h:10:9: 'metamacros.h' file not found
RCError/Pods/ReactiveCocoa/ReactiveCocoa/NSNotificationCenter+RACSupport.m:10:9: fatal error: 'EXTScope.h' file not found
 #import "EXTScope.h"

现在有没有办法将ReactiveCocoa与CocoaPods一起使用?

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

正如in this issue所解释的,一个可能的原因是您的sed中有PATH的不兼容版本。在Fink安装了GNU sed后,我曾遇到过这个问题。

然而,还有其他原因导致linked source中的prepare_command可能失败 - 毕竟,拜占庭命令行构造没有验证所使用的实用程序。不幸的是,ReactiveCocoa并不正式支持CocoaPods,因此除非重新排列PATH目录解决了您的问题,否则您可能需要直接安装ReactiveCocoa而不使用CocoaPods。

答案 1 :(得分:0)

好的,我发现安装ReactiveCocoa的解决方案没有问题。因此,问题与新版sed工具有关。您需要做的就是卸载可能通过sed安装的brew。所以jus run命令:

brew uninstall sed

然后perpare_command将使用sed的正确版本。要确保您拥有旧版sed运行命令:$ sed --version

输出应该是这样的:

sed: illegal option -- -
usage: sed script [-Ealn] [-i extension] [file ...]
   sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
相关问题