我正在尝试安装rollout.io,它只是说将代码放入ApppDelegate中,问题是它在Objective-C中。因此,我使用了一个转换器尝试将其更改为Swift,但是当我尝试将Objective-C导入标头放入我的代码时,它不起作用。即使我尝试对其进行转换,在线转换器也什至不显示“导入”部分
我已经尝试了所有这些
码:
import Rollout
import rollout
import UIRollout
所有这些都失败了。
我可以在快速弹出中获得底部,但不能获得顶部的“import,Rollout / Rollout.h>”部分
最佳答案
注意:
如果您的AppDelegate在Swift中,下面将允许您设置Rollout SDK。
更新:
Rollout SDK 1.1.0具有用于调用安装程序的Swift接口,因此以下所有信息现在均不相关。
原始答案:
1. Swift-ObjC桥接头
要从Swift调用[Rollout setupWithDebug:]
,您应该设置了Objective-C桥接标头,并应从其中导入<Rollout/Rollout.h>
:
ObjC-Bridging-Header
SWIFT_OBJC_BRIDGING_HEADER
设置为指向您创建的文件(ObjC-Bridging-Header.h
)。如果文件不在项目的根目录,则设置中需要相对路径-更多详细信息in this SO answer #import <Rollout/Rollout.h>
2.
#if debug
为了允许首次展示测试模式(便于进行热补丁测试),还需要从ObjC转换
#ifdef Debug
。这可以通过在构建设置中设置OTHER_SWIFT_FLAGS
来完成,如下所示:3.从AppDelegate.swift呼叫设置
现在,您可以将以下行添加到
application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
: #if DEBUG
Rollout.setupWithKey("<rollout_key>", developmentDevice: true)
#else
Rollout.setupWithKey("<rollout_key>", developmentDevice: false)
#endif