如何在 SWIFT Xcode 中导入 Rollout.io

Posted

技术标签:

【中文标题】如何在 SWIFT Xcode 中导入 Rollout.io【英文标题】:How to Import Rollout.io in SWIFT Xcode 【发布时间】:2015-10-18 01:30:37 【问题描述】:

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

这些我都试过了

代码:

import  Rollout
import rollout
import UIRollout

所有这些都失败了。

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

【问题讨论】:

【参考方案1】:

注意:

以下内容将允许您设置 Rollout SDK,以防您的 AppDelegate 使用 Swift。

更新:

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 来完成,如下所示:

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

【讨论】:

您现在可以更新您对支持 swift 的 Rollout SDK 的回答

以上是关于如何在 SWIFT Xcode 中导入 Rollout.io的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Swift 2 在 Xcode 7 beta 中导入 FBSDK

Xcode 9:使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入

如何在 Swift 的 JavaScriptCore 中导入模块?

Xcode Swift 在“应用程序目标”与“框架目标”中导入代码——有啥区别?

无法在 Swift Playground 中导入 tensorflow

使用 Swift 4.0 编译的模块无法在 Swift 3.1 中导入框架二进制文件