我已经添加了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
应该可以解决问题,不需要桥接头。