OptimizelySDKiOS 3.1.5

OptimizelySDKiOS 3.1.5

测试已测试
语言语言 Obj-CObjective C
许可证 Apache-2.0
发布上次发布2020 年 10 月

Optimizely FullStack 维护。



 
依赖项
OptimizelySDKEventDispatcher= 3.1.5
OptimizelySDKUserProfileService= 3.1.5
OptimizelySDKDatafileManager= 3.1.5
OptimizelySDKShared= 3.1.5
OptimizelySDKCore= 3.1.5
 

  • Optimizely

Objective-C SDK

Build Status Apache 2.0 Carthage compatible Coveralls Platforms Podspec Platforms Podspec

此仓库包含用于与 Optimiely Full Stack 以及移动和 OTT 的 Optimizely Rollouts 一起使用的 Objective-C SDK。

Optimizely Full Stack 是面向产品开发团队的 A/B 测试和功能标志管理。在任何应用程序中实验。将您的路线图上的每个功能都作为一个学习的机会。更多信息请访问 https://www.optimizely.com/platform/full-stack/,或查看 文档

Optimizely Rollouts 是面向开发团队免费的功能标志。无需代码部署即可轻松推出和回滚任何应用程序中的功能。降低您路线图上每个功能的风险。更多信息请访问 https://www.optimizely.com/rollouts/,或查看 文档

入门


注意

对于新用户和升级的 iOS 用户,我们建议使用我们完全用 Swift 编写的全新 Swift-SDK。Swift SDK 将成为我们未来新开发的主要 iOS SDK。它与 Objective-C SDK 兼容,并提供具有简化界面的扩展功能集。

现有的 Objective-C SDK 用户可以查看我们的 迁移指南,以了解如何迁移到新的 Swift SDK。


使用 SDK

请查阅安装 iOS 和 tvOS SDK以了解如何设置 Optimizely X 项目并开始使用 SDK。

要求

  • iOS 8.0+ / tvOS 9.0+

安装 SDK

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

**注意:**如果您或另一个框架正在使用 sqlite,您可能需要添加支持线程安全的 sqlite 的编译选项:SQLITE_THREADSAFE=1 https://www.sqlite.org/threadsafe.html

Cocoapod

  1. 将以下行添加到Podfile
    use_frameworks!
    pod 'OptimizelySDK<platform>', '~> 3.1.5'
  1. 运行以下命令
    pod install

Cocoapods 的其他安装说明:https://guides.cocoapods.org.cn/using/getting-started.html

Carthage

  1. 将以下行添加到Cartfile
    github "optimizely/objective-c-sdk" ~> 3.1.5
  1. 运行以下命令

    carthage update

  2. 将框架链接到您的项目中。转到您的项目目标的 链接二进制与库,并将以下内容从 Carthage/Build/<platform> 文件夹拖动

    OptimizelySDKCore.framework
    OptimizelySDKDatafileManager.framework
    OptimizelySDKEventDispatcher.framework
    OptimizelySDKShared.framework
    OptimizelySDKUserProfileService.framework
    OptimizelySDK<platform>.framework

  3. 为了确保在存档应用程序时正确复制与 bitcode 相关的文件和 dSYMs,您需要安装一个 Carthage 构建脚本

    • 在目标的全局构建阶段中添加一个新 Run Script 阶段。
    • 在脚本区域包含
      /usr/local/bin/carthage copy-frameworks
    • 将框架路径添加到输入文件列表
      $(SRCROOT)/Carthage/Build/<platform>/OptimizelySDKCore.framework
      $(SRCROOT)/Carthage/Build/<platform>/OptimizelySDKDatafileManager.framework
      $(SRCROOT)/Carthage/Build/<platform>/OptimizelySDKEventDispatcher.framework
      $(SRCROOT)/Carthage/Build/<platform>/OptimizelySDKShared.framework
      $(SRCROOT)/Carthage/Build/<platform>/OptimizelySDKUserProfileService.framework
      $(SRCROOT)/Carthage/Build/<platform>/OptimizelySDK<platform>.framework
    • 将复制的框架的路径添加到 输出文件 列表中
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/OptimizelySDKCore.framework
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/OptimizelySDKDatafileManager.framework
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/OptimizelySDKEventDispatcher.framework
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/OptimizelySDKShared.framework
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/OptimizelySDKUserProfileService.framework
      $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/OptimizelySDK<platform>.framework

Carthage 的进一步安装说明: https://github.com/Carthage/Carthage

手动安装

通用框架可以在应用程序中使用,无需第三方依赖管理器。通用框架打包了所有 Optimizely X Mobile 模块,包括

OptimizelySDKCore
OptimizelySDKShared
OptimizelySDKDatafileManager
OptimizelySDKEventDispatcher
OptimizelySDKUserProfileService

通用框架的 iOS 版本包括以下架构的构建

i386
x86_64
ARMv7
ARMv7s
ARM64

通用框架的 tvOS 版本包括以下架构的构建

x86_64
ARM64

为 iOS 和 tvOS 的通用框架都启用了 Bitcode。

为了安装通用框架,请按照以下步骤操作

  1. 下载 iOStvOS 框架。

  2. 解压框架,然后将框架拖放到您的 Xcode 项目中;Xcode 应提示您选择一个目标。转到 构建阶段,并确保框架位于 链接二进制与库 部分。

  3. 转到 常规 选项卡,并将框架添加到 嵌入的二进制文件 部分。如果 嵌入的二进制文件 部分不可见,请将框架添加到 复制文件 部分(您可以在 构建设置 中添加此部分)。

  4. 如果已安装通用框架,苹果商店将拒绝您的应用程序,因为它包含模拟器二进制文件。因此,在您上传应用程序之前需要运行一个会移除额外二进制的脚本。为此,请转到 构建阶段,并通过单击 + 符号添加一个 运行脚本 部分。复制并粘贴以下脚本(确保用正确的框架名称替换 FRAMEWORK_NAME !)

    FRAMEWORK="FRAMEWORK_NAME"
    FRAMEWORK_EXECUTABLE_PATH="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/$FRAMEWORK.framework/$FRAMEWORK"
    EXTRACTED_ARCHS=()
    for ARCH in $ARCHS
    do
       lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
       EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
    rm "${EXTRACTED_ARCHS[@]}"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
    

如果您选择自己构建通用框架,可以运行 OptimizelySDKiOS-UniversalOptimizelySDKTVOS-Universal 方案。构建这些方案后,框架将输出到 OptimizelySDKUniversal/generated-frameworks 文件夹。

贡献

请参阅 CONTRIBUTING

致谢

一party代码(位于OptimizelySDKCore/、OptimizelySDKDatafileManager/、OptimizelySDKEventDispatcher/、OptimizelySDKiOS/、OptimizelySDKShared/、OptimizelySDKTVOS/、OptimizelySDKUniversal/、OptimizelySDKUserProfileService/目录下)版权属于Optimizely,Inc.及其贡献者,遵循Apache 2.0许可协议。

附加代码

FMDB https://github.com/ccgus/fmdb
许可协议(MIT):https://github.com/ccgus/fmdb/blob/master/LICENSE.txt 已修改:是 分发:是 分发形式:二进制

SQLITE3 https://www.sqlite.org/index.html
许可协议(公共领域):https://www.sqlite.org/copyright.html 已修改:是 分发:是 分发形式:二进制

JSONModel https://github.com/jsonmodel/jsonmodel
许可协议(MIT):https://github.com/jsonmodel/jsonmodel/blob/master/LICENSE 已修改:是 分发:是 分发形式:二进制

murmur3 https://github.com/PeterScott/murmur3
许可协议(公共领域):https://github.com/PeterScott/murmur3 已修改:否 分发:是 分发形式:二进制