# Facebook SDK 集成说明

## 概述

本项目已成功集成Facebook SDK，用于跟踪用户行为和收集应用使用数据。

## 集成内容

### 1. 依赖管理
- 使用Swift Package Manager添加Facebook SDK
- 包地址：`https://github.com/facebook/facebook-ios-sdk`
- 最低版本：16.0.0

### 2. 核心组件

#### FacebookEventManager
位置：`MyQrCode/Utils/FacebookEventManager.swift`

主要功能：
- 初始化Facebook SDK
- 记录各种应用事件
- 提供统一的事件跟踪接口

#### 事件类型
- **应用启动**: `logAppLaunch()`
- **二维码扫描**: `logQRCodeScan(type:)`
- **二维码生成**: `logQRCodeGeneration(type:)`
- **功能使用**: `logFeatureUsage(feature:)`
- **分享**: `logShare(contentType:)`
- **购买**: `logPurchase(amount:currency:)`

### 3. 配置要求

#### Info.plist配置
```xml
<!-- Facebook SDK Configuration -->
<key>FacebookAppID</key>
<string>YOUR_FACEBOOK_APP_ID</string>
<key>FacebookClientToken</key>
<string>YOUR_FACEBOOK_CLIENT_TOKEN</string>
<key>FacebookDisplayName</key>
<string>MyQrCode</string>
<key>FacebookAutoLogAppEventsEnabled</key>
<false/>
<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>
```

#### 需要替换的值
- `YOUR_FACEBOOK_APP_ID`: 你的Facebook应用ID
- `YOUR_FACEBOOK_CLIENT_TOKEN`: 你的Facebook客户端令牌

### 4. 使用方法

#### 初始化
在`MyQrCodeApp.swift`中自动初始化：
```swift
init() {
    // 初始化Facebook SDK
    FacebookEventManager.shared.configure()
}
```

#### 记录事件
```swift
// 记录二维码扫描
FacebookEventManager.shared.logQRCodeScan(type: "QR_CODE")

// 记录二维码生成
FacebookEventManager.shared.logQRCodeGeneration(type: "EMAIL")

// 记录分享
FacebookEventManager.shared.logShare(contentType: "qr_code")
```

### 5. 事件跟踪点

#### 自动跟踪
- **应用启动**: 启动页面消失后自动记录
- **二维码扫描**: 扫描成功后自动记录
- **二维码生成**: 创建二维码时自动记录
- **分享功能**: 使用分享功能时自动记录

#### 手动跟踪
可以在任何需要的地方手动调用事件记录方法。

### 6. 隐私设置

#### 已禁用的功能
- `FacebookAutoLogAppEventsEnabled`: false - 禁用自动事件记录
- `FacebookAdvertiserIDCollectionEnabled`: false - 禁用广告ID收集

#### 用户控制
- 所有事件跟踪都通过代码控制
- 不收集个人身份信息
- 只跟踪应用功能使用情况

### 7. 测试和调试

#### 开发环境
- 使用测试Facebook应用ID
- 在Facebook开发者控制台查看事件

#### 生产环境
- 使用正式Facebook应用ID
- 确保所有配置正确

### 8. 注意事项

#### 合规性
- 确保符合GDPR等隐私法规
- 在隐私政策中说明数据收集
- 提供用户选择退出的选项

#### 性能
- 事件记录是异步的，不影响应用性能
- 网络请求在后台进行

#### 错误处理
- SDK初始化失败不会影响应用功能
- 事件记录失败会静默处理

## 故障排除

### 常见问题

1. **编译错误**: 检查Facebook SDK是否正确添加
2. **初始化失败**: 验证Info.plist配置
3. **事件不记录**: 检查网络连接和Facebook应用配置

### 调试步骤

1. 检查控制台日志
2. 验证Facebook应用配置
3. 测试网络连接
4. 查看Facebook开发者控制台

## 更新和维护

### 版本更新
- 定期更新Facebook SDK到最新版本
- 关注Facebook开发者博客的更新说明

### 功能扩展
- 可以添加更多自定义事件
- 支持自定义参数和属性
- 集成Facebook Analytics获取更详细数据
