如何在 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 在“应用程序目标”与“框架目标”中导入代码——有啥区别?