我正在尝试安装rollout.io,它只是说将代码放入ApppDelegate中,问题是它在Objective-C中。因此,我使用了一个转换器尝试将其更改为Swift,但是当我尝试将Objective-C导入标头放入我的代码时,它不起作用。即使我尝试对其进行转换,在线转换器也什至不显示“导入”部分

我已经尝试了所有这些

码:

import  Rollout
import rollout
import UIRollout

所有这些都失败了。

我可以在快速弹出中获得底部,但不能获得顶部的“import,Rollout / Rollout.h>”部分

ios - 如何在SWIFT Xcode中导入Rollout.io-LMLPHP

ios - 如何在SWIFT Xcode中导入Rollout.io-LMLPHP

最佳答案

注意:

如果您的AppDelegate在Swift中,下面将允许您设置Rollout SDK。

更新:

Rollout SDK 1.1.0具有用于调用安装程序的Swift接口,因此以下所有信息现在均不相关。

原始答案:

1. Swift-ObjC桥接头

要从Swift调用[Rollout setupWithDebug:],您应该设置了Objective-C桥接标头,并应从其中导入<Rollout/Rollout.h>:

  • 在构建设置中,检查是否已设置SWIFT_OBJC_BRIDGING_HEADER。如果是,请执行步骤4
  • 创建一个C头文件(文件->新建->文件...-> iOS->源文件->头文件)。以某种方式称呼它,例如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来完成,如下所示:

    ios - 如何在SWIFT Xcode中导入Rollout.io-LMLPHP

    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
    

    10-08 07:45