我已经添加了Rollbar作为对我的cocoapod的依赖。在我的podspec中,我有:

s.dependency 'Rollbar'


构建和运行包含我的cocoapod作为依赖项的应用程序可以正常工作,但是如果我打开框架项目,Xcode会抱怨,因为它没有导入Rollbar依赖项。

这会导致以下行出现“使用未解决的标识符'滚动条'”错误:

Rollbar.initWithAccessToken("XXX")


我完全了解发生了什么,我的框架项目对Rollbar依赖关系一无所知,因此它不会加载这些类。但这会影响我测试框架的方式,因为如果保持这种方式,它将无法编译。

我还将注意到,在桥接头文件中,我用#import包装了必要的Rollbar __has_include以允许桥接头文件进行编译。

#if __has_include("Rollbar/Rollbar.h")
#import <SystemConfiguration/SystemConfiguration.h>
#import <Rollbar/Rollbar.h>
#endif


由于出现此错误,似乎无法在Swift文件中执行类似操作:

RollbarSetup.swift:2:5: Unexpected platform condition (expected 'os', 'arch', or 'swift')


这使我相信这种条件式是不允许的。我希望如果不存在Rollbar依赖性,可以在框架中创建一些模拟对象。



在编写使用单独的cocoapod依赖关系的cocoapod时,还有其他人遇到过吗?我觉得在这种情况下,任何人都会遇到这种情况。

我可以做些什么来允许我的框架项目进行编译吗?

最佳答案

Podspec文件应该由Pod的作者编写,要将Pod添加到您的项目中,您需要在Podfile中添加pod 'Rollbar'。另外,#if __has_include仅在文件已导入时执行,因此在此语句中导入它会执行任何操作。由于您使用的是Swift,因此简单的import Rollbar应该可以解决问题,不需要桥接头。

09-29 23:12