# 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
FacebookAppID
YOUR_FACEBOOK_APP_ID
FacebookClientToken
YOUR_FACEBOOK_CLIENT_TOKEN
FacebookDisplayName
MyQrCode
FacebookAutoLogAppEventsEnabled
FacebookAdvertiserIDCollectionEnabled
```
#### 需要替换的值
- `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获取更详细数据