ios devicehelper添加readme

main
zhangaotian 2026-04-03 13:40:52 +08:00
parent e2791aae6d
commit 2e9c3ef338
1 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,37 @@
# DeviceIdentifiers.m
用于向 iOS (Xcode) 原生层请求获取设备广告标识符 (IDFA) 与供应商标识符 (IDFV) 的 Unity 桥接脚本。
---
## 注意点
- IDFA (广告标识符) —— 异步获取
*授权弹窗:获取 IDFA 必须调起 iOS 系统原生的 AppTrackingTransparency 弹窗,只有在用户主动允许追踪后才可获取真实 IDFA。
* 异步回调:由于需要等待用户交互,此过程为异步操作。
* 回调目标:获取结果会通过 UnitySendMessage 传递给 Unity。请务必确保 Unity 场景中存在名为 GameLauncher 的 GameObject并已挂载接收回调的方法。
- IDFV (供应商标识符) —— 同步获取
* 直接获取IDFV 为设备厂商 ID无需经过用户授权弹窗可直接在调用时同步获取并返回结果。
- 自动触发机制 (App 启动即弹窗)
* 默认行为:代码内实现了 onAppDidBecomeActive 监听。App 每次启动并进入活跃状态时,将自动调起 IDFA 请求弹窗。
* 修改建议:若项目业务逻辑不需要在 App 刚启动时就弹出授权框(例如需要延迟到特定关卡或场景再弹),请在源码中手动删除或注释掉 onAppDidBecomeActive 相关的监听与函数体。
- IDFA 需要调起iOS原生弹窗 用户允许追踪才可以获取 所以为异步获取 成功获取需要回调给Unity
- IDFV 为厂商ID 可以直接获取
- onAppDidBecomeActive 为启动App就调起请求IDFA 若不想App启动调起删除该函数
- UnitySendMessage 回调GameObject为GameLauncher
## Xcode 工程配置须知 (重要)
- 添加系统库:
在 Xcode -> Target -> Build Phases -> Link Binary With Libraries 中,添加以下框架:
* AdSupport.framework
* AppTrackingTransparency.framework
- 配置隐私描述:
在 Info.plist 中必须添加跟踪权限的用途描述,否则弹窗无法显示且会导致应用崩溃或拒审:
* Key: Privacy - Tracking Usage Description (NSUserTrackingUsageDescription)
* Value: (请填写向用户解释为何需要追踪的文案)