Optimizely Swift SDK

Apache 2.0 Carthage compatible Build Status Coverage Status Platforms Podspec

此仓库包含 Swift SDK,用于 Optimizely Feature Experimentation 和 Optimizely Full Stack (legacy),适用于移动设备和 OTT。

Optimizely Feature Experimentation 是一款 A/B 测试和功能管理工具,专为产品开发团队设计,使您能够在每个阶段进行实验。使用 Optimizely Feature Experimentation 可以让您 roadmap 上的每个功能都成为发现隐藏洞察的机会。请访问 Optimizely.com 了解更多信息,或查看开发者文档

Optimizely Rollouts 是面向开发团队的免费功能标志。您可以轻松地在任何应用程序中推出和回滚功能,而无需代码部署,从而降低 roadmap 上每个功能的风险。

开始使用

使用 Swift SDK

请参阅 Swift SDK 开发者文档,获取有关开始使用 SDK 的详细说明。

要求

安装 SDK

请注意,以下 <platform> 用于表示您构建应用程序的平台。目前,我们支持 iOStvOSwatchOS 平台。

Swift Package Manager

Xcode 中使用 Swift Package Manager 添加 Optimizely Swift SDK 的依赖项

  1. File -> Swift Packages -> Add Package Dependency
  2. 输入 https://github.com/optimizely/swift-sdk
  3. 接受默认规则 (Version: 'Up to Next Major')。

如果您在将 Optimizely swift-sdk 依赖项添加到 Xcode 时与其他 swift 包发生名称冲突,您也可以尝试使用其别名仓库:“https://github.com/optimizely/optimizely-swift-sdk.git”。

CocoaPods

  1. 将以下行添加到 Podfile
    use_frameworks!
    pod 'OptimizelySwiftSDK', '~> 5.1.0'
  1. 运行以下命令
    pod install

关于 Cocoapods 的更多安装说明:https://guides.cocoapods.org.cn/using/getting-started.html

Carthage

  1. 将以下行添加到 Cartfile

    github "optimizely/swift-sdk" ~> 4.1.0

  2. 运行以下命令

    carthage update

  3. 将 frameworks 链接到您的项目。转到您的项目目标的 Link Binary With Libraries,并从 Carthage/Build/<platform> 文件夹中拖入以下内容

    Optimizely.framework

  4. 为确保在归档您的应用程序时复制正确的 bitcode 相关文件和 dSYM,您需要安装 Carthage 构建脚本

    • 在您的目标 Build Phase 中添加一个新的 Run Script 阶段。
    • 在脚本区域中包含
      /usr/local/bin/carthage copy-frameworks
    • 将 frameworks 添加到 Input Files 列表
      $(SRCROOT)/Carthage/Build/<platform>/Optimizely.framework
    • 将复制的 frameworks 的路径添加到 Output Files 列表
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Optimizely.framework

关于 Carthage 的更多安装说明:https://github.com/Carthage/Carthage

功能管理访问权限

要访问 Optimizely 仪表板中的功能管理配置,请联系您的 Optimizely 客户成功经理。

使用 Swift SDK

示例

SDK 初始化和实验的示例代码

let optimizely = OptimizelyClient(sdkKey:"somesdkkey")

optimizely.start{ result in
    do {
        let variation = try optimizely.activate(experimentKey: "background_experiment", userId: "userId", attributes: ["doubleKey":5])
        try optimizely.track(eventKey: "sample_conversion", userId: "userId")
    } catch {
        print(error)
    }
}

请参阅 Optimizely Feature Experimentation 开发者文档,了解如何设置您的第一个 Swift 项目并使用 SDK。

贡献

请参阅 CONTRIBUTING

鸣谢

第一方代码(在 OptimizelySwiftSDK 下)的版权归 Optimizely, Inc. 及其贡献者所有,根据 Apache 2.0 许可。

附加代码

此软件包含来自以下开源项目的代码

MurmurHash3:https://github.com/jpedrosa/sua/blob/master/Sources/murmurhash3.swift 许可证 (Apache 2.0):https://github.com/jpedrosa/sua/blob/master/LICENSE.txt 移植到 Swift4。

SwiftLint:https://github.com/realm/SwiftLint 许可证 (MIT):https://github.com/realm/SwiftLint/blob/master/LICENSE 用于强制执行 Swift 风格和约定。

其他 Optimizely SDK