我已将Rollbar添加为我的cocoapod的依赖项。在我的podspec中,我有:
s.dependency 'Rollbar'
构建并运行包含我的cocoapod作为依赖项的应用程序可以正常工作,但如果我打开我的框架项目,Xcode会抱怨,因为它没有导入Rollbar依赖项。
这导致"使用未解析的标识符' 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时,有没有其他人遇到过这种情况?我觉得这个场景中的任何人都会遇到这种情况。
我可以做些什么来允许我的框架项目进行编译?
答案 0 :(得分:0)
Podspec文件应由pod的作者编写,以便在您的Podfile中添加{0}添加pod 'Rollbar'
项目。此外,#if __has_include
仅在文件已导入时执行,因此在此语句中导入它会执行任何操作。由于你使用的是Swift,一个简单的import Rollbar
应该可以解决问题,不需要桥接头。
答案 1 :(得分:0)
我在Swift中有一个cocoapod SDK,并按照以下步骤操作了
podspec
文件中
s.dependency 'Rollbar', '1.8.1'
import Rollbar
,您必须在其中设置错误消息pod install
命令。let configuration = RollbarConfiguration()
configuration.crashLevel = "critical"
configuration.environment = "production"
Rollbar.initWithAccessToken("POST_CLIENT_ITEM_ACCESS_TOKEN", configuration: configuration)
Rollbar.error("Error Message")
Rollbar集成已完成。