LotameDMP 5.3.0

LotameDMP 5.3.0

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布上次发布2021年7月
SPM支持 SPM

Dan RuskKevin O'Connor 维护。



LotameDMP 5.3.0

  • Dan Rusk

LotameDMP-IOS

此开源库可以让 Lotame 客户利用它从 iOS 应用程序内部收集数据。

Version License Platform

需求

LotameDMP 需要 Xcode 8 和至少 iOS 8.0。它支持 Swift 或 Objective-C。

示例

要运行示例项目

  1. 克隆仓库
  2. 进入 Example 目录 cd Example/
  3. 运行 pod install
  4. 打开 LotameDMP.xcworkspace。不要打开 .xcodeproj
  5. 在 Xcode 中,将方案从 LotameDMP(带工具箱图标)更改为 LotameDMP-Example
  6. 构建并运行

安装

内嵌框架需要 iOS 8 或更高版本或 OS X Sierra(10.12)或更高版本的最小部署目标。

使用 CocoaPods

CocoaPods 是适用于 Cocoa 项目的依赖项管理器。

构建 LotameDMP 所需 CocoaPods 版本为 1.2.1。您可以使用以下命令进行安装:

$ gem install cocoapods

要使用 CocoaPods 将 LotameDMP 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!

target "YourTargetName" do
  pod 'LotameDMP', '~> 5.0'
end

注意:请确保更新您的目标名称

然后,运行以下命令

$ pod repo update
$ pod install

注意:如果最近没有进行过更新,请确保更新您的本地 CocoaPod 存储库。

关闭您的 .xcodeproj 文件,然后打开生成的 .xcworkspace 文件。

将以下元素添加到项目的 Info.plist 文件中,以配置 ATS

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>crwdcntrl.net</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>

Carthage

Carthage 是与 CocoaPods 相似的依赖项管理器。

您可以使用 Homebrew 安装 Carthage

$ brew update
$ brew install carthage

创建一个名为 Cartfile 的文件并添加以下文本

github "Lotame/LotameDMP-IOS" ~> 5.0

运行 carthage update

这会生成以下文件

./Carthage/Build/iOS/LotameDMP.framework

安装

  1. 打开 Xcode 并转到 目标 > 通用 > 嵌套二进制文件
  2. LotameDMP.framework 拖拽到 嵌套二进制文件 部分。
  3. 当您被提示时,勾选 如果需要则复制项目 的复选框。

最后,在 README 中继续滚动到 添加运行脚本来阶段 部分,进行最后一个配置步骤。

拖拽式安装

下载以下文件

tag-5.0.0-swift-3.1-framework.zip

解压它,您应该可以看到里面的 LotameDMP.framework

安装

  1. 打开 Xcode 并转到 目标 > 通用 > 嵌套二进制文件
  2. LotameDMP.framework 拖拽到 嵌套二进制文件 部分。
  3. 当您被提示时,勾选 如果需要则复制项目 的复选框。

关于 Swift 版本的说明:为了使拖拽式安装生效,您必须使用与预编译框架相同的 Swift 版本。分发文件夹的内容用标签和 Swift 版本来标记,因此您可以根据标签了解代码状态,根据 Swift 版本了解兼容性。如果您使用的是不同的 Swift 版本,您有几个选择

  1. 使用 CocoaPods
  2. 使用 Carthage
  3. 下载仓库,并运行 ./build_framework.sh 脚本。这会在 dist 文件夹中生成一个框架压缩文件

最后,在 README 中继续滚动到 添加运行脚本来阶段 部分,进行最后一个配置步骤。

添加运行脚本来添加阶段

本节仅适用于 Carthage拖放 安装方式。这两种方法生成的 .framework 文件包含模拟器和设备的二进制文件 — 这两者都是您进行应用开发所需的。

问题在于应用商店提交有一个验证过程,会自动拒绝您的构建,因为它包含模拟器的二进制切片。

为了将您的应用提交到应用商店,您需要添加一个 运行脚本,用于移除这些不必要的切片。

  1. 选择您的应用程序目标,然后转到 构建阶段
  2. 单击 + 按钮,然后添加 新运行脚本阶段
  3. Shell 设置为 /bin/sh
  4. 在shell脚本的主体中,粘贴以下内容:/usr/local/bin/carthage copy-frameworks
  5. 输入文件 下,添加 LotameDMP.framework 的路径。这取决于您的安装方法
  • Carthage$(SRCROOT)/Carthage/Build/iOS/LotameDMP.framework
  • 拖放$(SRCROOT)/LotameDMP.framework

您的屏幕应看起来像这样

run-script.png

如果您跳过此步骤,您仍然可以构建、运行和开发。但您将在验证应用商店提交的二进制文件时看到错误。

使用方法

LotameDMP必须被任何使用库的文件导入。

import LotameDMP

或对于Objective-C

#import "LotameDMP-Swift.h"

初始化

LotameDMP 是一个单例,必须在首次使用前使用客户端 ID 进行初始化。在执行任何其他调用之前运行以下命令

DMP.initialize("YOUR_CLIENT_ID_NUMBER")

或对于Objective-C

[DMP initialize:@"YOUR_CLIENT_ID_NUMBER_"];

初始化调用开始一个新的会话,并将域名和协议设置为它们的默认值(https://*.crwdcntrl.net)

发送行为

行为数据通过一个添加命令收集

DMP.addBehaviorData("value", forType: "type")
DMP.addBehaviorData(behaviorId: 1)
DMP.addBehaviorData(opportunityId: 1)

或对于Objective-C

[DMP addBehaviorData:@"value" forType: @"type"];
[DMP addBehaviorDataWithBehaviorId: 1];
[DMP addBehaviorDataWithOpportunityId: 1];

可以附加多个行为,如上所述。一旦附加了屏幕或行为的所有相关行为数据,就应该将其发送到服务器以记录行为

DMP.sendBehaviorData()

或对于Objective-C

[DMP sendBehaviorData];

如果您对发送数据的成功或失败感兴趣,请使用完成处理程序。

DMP.sendBehaviorData(){
	result in
	if result.isSuccess{
		//Success
	} else{
		//Failure
	}
}

或对于Objective-C

[DMP sendBehaviorDataWithHandler: ^(NSError * _Nullable error){
    if (error != nil){
        //Failure
    } else {
        //Success
    }
}];

获取受众数据

使用以下命令获取受众数据

DMP.getAudienceData{
	result in
	if let profile = result.value{
		//Successful request, use LotameProfile object
	} else {
		//result.error will contain an error object
	}
}

或对于Objective-C

[DMP getAudienceDataWithHandler:^(LotameProfile * _Nullable profile, BOOL success) {
        if (success) { //Check for success
            //Successful request, use LotameProfile object
        }
}];

完成处理程序使用 Result 枚举来指示成功或失败。

开始新会话

使用以下命令来指示新会话的开始

DMP.startNewSession()

或对于Objective-C

[DMP startNewSession];

使用提供的URL模式发送HTTP或HTTPS请求

此模式可以包含两个替换宏,{deviceid}和{deviceidtype},在执行HTTP(s)调用之前将被替换。

DMP.sendRequest(urlPattern: "http://xyz.com/getData?mid={deviceid}&dt={deviceidtype}")

或对于Objective-C

[DMP sendRequest urlPattern:@"http://xyz.com/getData?mid={deviceid}&dt={deviceidtype}"];

关于此版本

版本5.0.0升级到swift 5。

版本4.1.0移除了对AlamoFire和SwiftyJSON的依赖。它还生成一个.framework文件以支持拖放安装。

版本4.0.0将代码更新到Swift 3,因为Xcode 8.3.2不再支持Swift 2.3。

之前版本的Lotame 3.0.1 依赖于Alamofire 2.0。此依赖项已更新到Alamofire 4.4。如果您的项目依赖于Alamofire,请参阅他们的迁移指南以更新您的网络调用。

致维护者

在更改版本时,请确保更新以下3个位置

  1. LotameDMP.podspec
  2. Git标签
  3. DMP.swift中的sdkVersion

当发布 Swift 的新版本时,运行 ./build_framework.sh 脚本。这将生成一个新压缩包,存放在 dist 文件夹中,标记为当前 git 标签和本地 Mac 上的 Swift 版本。将生成的 zip 文件推送到库中,并更新此文件中 拖放安装 部分的链接。

许可

LotameDMP 在 MIT 许可下可用。更多信息请参阅 LICENSE 文件。