Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(apple): 添加多个平台支持 (macOS/tvOS/watchOS/visionOS),优化集成文档 #288

Merged
merged 4 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions docs/SDK OVERVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ slug: /

<center><img src={require('/img/conversion.gif').default} alt="SDK Banner" /></center>

GrowingIO 是我们于 2015 年发布的新一代数据分析产品,无需埋点即可采集全量实时用户行为数据,我们希望通过提供一个简单、迅速和规模化的产品,帮助企业快速建立业务数据分析体系,让企业里面的每个人都能用数据去驱动业务增长。千里之行,始于足下,数据采集是数据分析的基础和入口。目前在数据采集方面,GrowingIO 不仅提供了无埋点的轻量级客户端 JavaScript、iOS 和 Android SDK,同时也提供打点的服务端 Java、Python、Ruby、Node 等语言 SDK,方便与企业内部数据打通。
GrowingIO 是我们于 2015 年发布的新一代数据分析产品,无需埋点即可采集全量实时用户行为数据,我们希望通过提供一个简单、迅速和规模化的产品,帮助企业快速建立业务数据分析体系,让企业里面的每个人都能用数据去驱动业务增长。千里之行,始于足下,数据采集是数据分析的基础和入口。目前在数据采集方面,GrowingIO 不仅提供了无埋点的轻量级客户端 JavaScript、Apple 和 Android SDK,同时也提供打点的服务端 Java、Python、Ruby、Node 等语言 SDK,方便与企业内部数据打通。


### SDK 支持范围

SDK 包括客户端 SDK 和服务端 SDK。目前客户端 SDK 支持 Android 和 iOS 原生,Web JS,小程序,以及众多第三方混合开发框架。服务端 SDK 支持 Java、PHP、Python。
SDK 包括客户端 SDK 和服务端 SDK。目前客户端 SDK 支持 Android 和 Apple 原生,Web JS,小程序,以及众多第三方混合开发框架。服务端 SDK 支持 Java、PHP、Python。

小程序支持微信小程序、阿里(支付宝)小程序、百度小程序、抖音小程序、QQ 小程序、淘宝小程序、快手小程序、京东小程序、快应用。

Expand All @@ -26,24 +26,25 @@ SDK 包括客户端 SDK 和服务端 SDK。目前客户端 SDK 支持 Android
| :------------: | :--: | :------: | :------: | :------------: | :--: | :------: | :--: | :--: | :------: |
| Android 无埋点 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Android 埋点 | ✅ | - | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
| iOS 无埋点 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| iOS 埋点 | ✅ | - | - | - | ✅ | ✅ | ✅ | ✅ | ✅ |
| Apple | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Web JS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | - | - |
| 小程序 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | - | ✅ |
| HarmonyOS | ✅ | - | - | - | ✅ | ✅ | - | - | - |
| React Native | ✅ | - | - | - | ✅ | ✅ | - | - | - |
| Flutter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

:::info 注意
关于事件类型说明请查看[**事件模型**](/knowledge/basicknowledge/eventModel) <br/>
关于事件类型说明请查看[**事件模型**](/knowledge/basicknowledge/eventModel)

Apple SDK 中,无埋点相关事件如页面浏览、元素点击、元素变更、应用关闭,仅部分平台支持
:::

### 移动端框架版本兼容

| 框架 | SDK 类别 | App 适配的系统版本 | 框架版本 |
| :----------- | :----------: | :-----------------: | :---------------: |
| 原生 Android | 无埋点、埋点 | Android 4.2+ | - |
| 原生 iOS | 无埋点、埋点 | iOS 10+ | - |
| Apple | 无埋点、埋点 | iOS 10.0+<br/> macOS 10.12+<br/> watchOS 7.0+<br/> tvOS 12.0+<br/> visionOS 1.0+ | - |
| HarmonyOS | 埋点 | HarmonyOS 3.1.0+ | API 9+ |
| Flutter | 无埋点、埋点 | 移动端系统同上 | dart>=2.14.0 sdk>=2.10.5 |
| React Native | 埋点 | 移动端系统同上 | 0.46-0.56、0.59.9 |
Expand All @@ -67,11 +68,11 @@ GrowingIO CDP 产品是集**服务端数据分析和客户端自动埋点一体
| OP-13.6 | 无埋点、埋点 | >=3.0.0 |
| OP-14.3.0 | 全量 context 字段传输,服务端通用维度拆解 | 3.2.0 |
| OP-2.0.0 | 支持 user_key,IDMapping | 3.3.0 |
| OP-2.6.0 | 支持埋点事件属性值、用户变量属性值可传数组类型 | Android SDK 3.3.6<br/>iOS SDK 3.3.6<br/>Web JS SDK 3.3.10<br/>小程序 SDK 3.3.5<br/> |
| OP-2.6.0 | 支持埋点事件属性值、用户变量属性值可传数组类型 | Android SDK 3.3.6<br/>Apple SDK 3.3.6<br/>Web JS SDK 3.3.10<br/>小程序 SDK 3.3.5<br/> |
| OP-2.7.0 | 支持服务端 SDK 埋点事件可传 eventTime 参数 | Java SDK v1.0.11-cdp<br/> PHP SDK v1.0.2<br/> Python SDK v1.0.1 |
| New SaaS | 新无埋点、埋点 | >=4.0.0 |
| OP-4.2 | 新无埋点、埋点 | >=4.0.0 |

:::info
如果使用采集数据加密解密功能产品需要升级到 14.3.0 之后, Android SDK 3.3.0 之后, iOS SDK 3.3.0 之后
如果使用采集数据加密解密功能产品需要升级到 14.3.0 之后, Android SDK 3.3.0 之后, Apple SDK 3.3.0 之后
:::
2 changes: 1 addition & 1 deletion docs/framework/React Native.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ title: React Native SDK

## 环境配置
:::info
请确保原生工程中已经添加**原生埋点SDK**, 如果没有, 请移步至原生端埋点SDK集成文档: [**Android 埋点SDK**](/docs/android/Introduce#集成埋点sdk)、[**iOS 埋点SDK**](/docs/ios/Introduce#埋点-sdk-集成)
请确保原生工程中已经添加**原生埋点SDK**, 如果没有, 请移步至原生端埋点SDK集成文档: [**Android 埋点SDK**](/docs/android/Introduce#集成埋点sdk)、[**iOS 埋点SDK**](/docs/ios/Introduce#添加埋点-sdk-到您的应用)
:::
## React Native SDK集成
### 添加依赖
Expand Down
8 changes: 4 additions & 4 deletions docs/framework/flutter/Flutter SDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ dependencies:
然后执行 `flutter pub get` 指令安装插件。

<details>
<summary>点击查看Growingio Flutter 插件和 SDK 版本的依赖关系</summary>
<summary>点击查看 GrowingIO Flutter 插件和 SDK 版本的依赖关系</summary>

| Flutter 插件版本 | Android SDK 版本范围 | iOS SDK 版本范围 |
| Flutter 插件版本 | Android SDK 版本范围 | Apple SDK 版本范围 |
| :-------------- | :----------------- | :------: |
| >= v1.1.3 | >= v3.5.0 | >= v3.5.0 |
| = v2.0.0 | >= v4.1.0 | >= v4.1.0 |
Expand All @@ -61,7 +61,7 @@ GrowingIO Flutter SDK 支持在 Flutter 中初始化 SDK,也同时支持在原
原生端初始化请参考各端的初始化文档:

* Android: [无埋点初始化配置](/docs/android/Introduce#sdk初始化配置)、[埋点初始化配置](/docs/android/Introduce#sdk初始化配置-1),另外,在 Android 原生初始化需要额外添加 [Flutter 模块](/docs/android/modules/flutter%20module#使用方式)
* iOS: [无埋点初始化配置](/docs/ios/Introduce#sdk-初始化配置)、[埋点初始化配置](/docs/ios/Introduce#sdk-初始化配置-1)
* iOS: [无埋点初始化配置](/docs/ios/Introduce#添加无埋点-sdk-到您的应用)、[埋点初始化配置](/docs/ios/Introduce#添加埋点-sdk-到您的应用)

#### Flutter 初始化

Expand Down Expand Up @@ -164,7 +164,7 @@ void main() async {
在使用 GrowingIO SDK 的Mobile Debugger 和圈选功能时,需要外部浏览器通过扫描二维码来拉起应用。

* [Android 端 URLScheme 配置说明](/docs/android/Introduce#添加url-scheme)
* [iOS 端 URLScheme 配置说明](/docs/ios/Introduce#添加-url-scheme)
* [iOS 端 URLScheme 配置说明](/docs/ios/Introduce#步骤-4-添加-url-scheme-ios-平台)

### 模块配置

Expand Down
2 changes: 1 addition & 1 deletion docs/giokit/ios/_category_.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"label": "iOS SDK 插件",
"label": "Apple SDK 插件",
"position": 3
}
6 changes: 3 additions & 3 deletions docs/giokit/ios/integrate.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import TabItem from '@theme/TabItem';
GioKit 代码已托管在 [Github](https://github.com/growingio/growingio-sdk-ios-toolskit) 上,欢迎 star, fork 一波。
:::info
**使用环境**
**Xcode 9.0 及以上**<br/>
**iOS 9.0 及以上**<br/>
**请在 [iOS SDK](/docs/ios/Introduce) 基础上使用 GioKit**
**Xcode 14.3 及以上**<br/>
**iOS 10.0 及以上**<br/>
**请在 [Apple SDK](/docs/ios/Introduce) 基础上使用 GioKit**
:::

<Tabs>
Expand Down
27 changes: 15 additions & 12 deletions docs/index/ios.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
---
slug: /iOS
title: "iOS SDK"
slug: /ios
title: "Apple SDK"
---

iOS SDK 提供了 [无埋点SDK](/docs/ios/Introduce#无埋点-sdk-集成) 和 [埋点SDK](/docs/ios/Introduce#埋点-sdk-集成) 两个版本:
Apple SDK 提供了无埋点 SDK 和埋点 SDK 两个版本:
* 埋点 SDK 只自动采集用户访问事件,需要开发同学调用相应埋点 API 采集埋点事件;
* 无埋点 SDK 具备 埋点 SDK 的所有功能,同时具备自动采集基本用户行为事件,如页面访问,点击事件等。

:::tip 开源信息
无埋点SDK(包括埋点 SDK)代码已在 [Github](https://github.com/growingio/growingio-sdk-ios-autotracker) 上开源,可以详细查看代码实现细节,欢迎 star, fork。
:::

:::info
**开发环境:** <br/>
Xcode 13.3 及以上
iOS 10.0 及以上
Swift 5.6 及以上
开发环境:
Xcode 14.3 及以上

**根据需要选择集成** [<font color='red'>无埋点SDK</font>](/docs/ios/Introduce#无埋点-sdk-集成) 或 [<font color='red'>埋点SDK</font>](/docs/ios/Introduce#埋点-sdk-集成)
确保您的项目的目标平台不得低于以下版本:
* iOS 10
* macOS 10.12
* watchOS 7.0
* tvOS 12.0
* visionOS 1.0
:::

:::tip 开源信息
Apple SDK 代码已在 [Github](https://github.com/growingio/growingio-sdk-ios-autotracker) 上开源,可以详细查看代码实现细节,欢迎 star, fork。
:::


Expand Down
58 changes: 34 additions & 24 deletions docs/ios/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,27 @@ import TabItem from '@theme/TabItem';

### 配置表格

| Config | 参数类型 | 是否必填 | 默认值 | 说明 | 其它 |
| :------------------------- | :------ | :----: |:------ |:------| :---: |
| `accountId` | `String` | 是 | `nil` | 项目 ID(AccountID),每个应用对应唯一值 | - |
| `dataSourceId` | `String` | 是 | `nil` | 应用的 DataSourceId,唯一值 | - |
| `dataCollectionServerHost`| `String` | 是 | `nil` | 服务端部署后的 ServerHost | - |
| `debugEnabled` | `Bool` | 否 | `false` | 调试模式,会打印 SDK log,抛出错误异常,在线上环境请关闭 | - |
| `cellularDataLimit` | `UInt` | 否 | `10` | 每天发送数据的流量限制,单位 MB | - |
| `dataUploadInterval` | `TimeInterval` | 否 | `15` | 数据发送的间隔,单位秒 | - |
| `sessionInterval` | `TimeInterval` | 否 | `30` | 会话后台留存时长,单位秒 | - |
| `dataCollectionEnabled` | `Bool` | 否 | `true` | 是否采集数据 | - |
| `excludeEvent` | `UInt` | 否 | `0` | 设置事件过滤 | - |
| `ignoreField` | `UInt` | 否 | `0` | 设置事件属性过滤 | - |
| `impressionScale` | `Float` | 否 | `0` | 元素曝光事件中的比例因子,范围 [0-1] | <font color='red'>无埋点独有</font> |
| `idMappingEnabled` | `Bool` | 否 | `false` | 是否开启多用户身份上报 | - |
| `urlScheme` | `String` | 否 | `nil` | 自定义 URL Scheme | - |
| `encryptEnabled` | `Bool` | 否 | `false` | 是否开启网络传输加密 | - |
| `useProtobuf` | `Bool` | 否 | `true` | 是否采用 Protobuf 格式保存和上传事件数据 | - |
| `autotrackEnabled` | `Bool` | 否 | `true` | 是否开启无埋点采集 | <font color='red'>无埋点独有</font> |
| `autotrackAllPages` | `Bool` | 否 | `false` | 是否开启页面自动采集 | <font color='red'>无埋点独有</font> |
| Config | 参数类型 | 是否必填 | 默认值 | 说明 | 其它 | 版本 |
| :------------------------- | :------ | :----: |:------ |:------| :---: | -------------------------- |
| `accountId` | `String` | 是 | `nil` | 项目 ID(AccountID),每个应用对应唯一值 | - | |
| `dataSourceId` | `String` | 是 | `nil` | 应用的 DataSourceId,唯一值 | - | |
| `dataCollectionServerHost`| `String` | 是 | `nil` | 服务端部署后的 ServerHost | - | |
| `debugEnabled` | `Bool` | 否 | `false` | 调试模式,会打印 SDK log,抛出错误异常,在线上环境请关闭 | - | |
| `cellularDataLimit` | `UInt` | 否 | `10` | 每天发送数据的流量限制,单位 MB | - | |
| `dataUploadInterval` | `TimeInterval` | 否 | `15` | 数据发送的间隔,单位秒 | - | |
| `sessionInterval` | `TimeInterval` | 否 | `30` | 会话后台留存时长,单位秒 | - | |
| `dataCollectionEnabled` | `Bool` | 否 | `true` | 是否采集数据 | - | |
| `excludeEvent` | `UInt` | 否 | `0` | 设置事件过滤 | - | |
| `ignoreField` | `UInt` | 否 | `0` | 设置事件属性过滤 | - | |
| `impressionScale` | `Float` | 否 | `0` | 元素曝光事件中的比例因子,范围 [0-1] | <font color='red'>无埋点独有</font> | |
| `idMappingEnabled` | `Bool` | 否 | `false` | 是否开启多用户身份上报 | - | |
| `urlScheme` | `String` | 否 | `nil` | 自定义 URL Scheme | - | |
| `encryptEnabled` | `Bool` | 否 | `false` | 是否开启网络传输加密 | - | |
| `compressEnabled` | `Bool` | 否 | `false` | 是否开启网络传输压缩 | - | >=4.3.0 |
| `useProtobuf` | `Bool` | 否 | `true` | 是否采用 Protobuf 格式保存和上传事件数据 | - | |
| `autotrackEnabled` | `Bool` | 否 | `true` | 是否开启无埋点采集 | <font color='red'>无埋点独有</font> | |
| `autotrackAllPages` | `Bool` | 否 | `false` | 是否开启页面自动采集 | <font color='red'>无埋点独有</font> | >=4.2.0 |
| `dataValidityPeriod` | `NSUInteger` | 否 | `7` | 本地未上报的事件数据有效时长,单位天 | - | >=4.3.0 |

### 详细说明

Expand Down Expand Up @@ -79,20 +81,28 @@ import TabItem from '@theme/TabItem';

#### 11. **urlScheme**

自定义 URL Scheme,如存在多环境配置,可基于不同环境进行自定义,需同时在工程中添加该 [URL Scheme](/docs/ios/Introduce#添加-url-scheme)
自定义 URL Scheme,如存在多环境配置,可基于不同环境进行自定义,需同时在工程中添加该 [URL Scheme](/docs/ios/Introduce#步骤-4-添加-url-scheme-ios-平台)

#### 12. **encryptEnabled**

设置为 true 时,网络传输内容将会加密,不会明文显示。

#### 13. **useProtobuf**
#### 13. **compressEnabled**

设置为 true 时,网络传输内容将会使用 LZ4 进行压缩。

#### 14. **useProtobuf**

是否使用 [Google Protobuf](https://developers.google.cn/protocol-buffers) 格式保存和上传事件数据,默认为 true,为 false 则采用 JSON 格式

#### 14. **autotrackEnabled**
#### 15. **autotrackEnabled**

当集成无埋点 SDK 时,设置为 false 将关闭无埋点功能和自动采集

#### 15. **autotrackAllPages**
#### 16. **autotrackAllPages**

当集成无埋点 SDK 时,设置为 true 将开启页面自动采集,alias 默认为 ViewController 的类名;通过调用 `autotrackPage` 接口所配置的 alias 将覆盖默认值

#### 17. **dataValidityPeriod**

当集成无埋点 SDK 时,设置为 true 将开启页面自动采集,alias 默认为 ViewController 的类名;通过调用 `autotrackPage` 接口所配置的 alias 将覆盖默认值
每当 SDK 初始化时,将根据所配置的事件有效时长,清除本地已过期的事件数据
Loading
Loading