React Native集成Adjust SDK iOS端返回状态码0问题求助
iOS端Adjust SDK授权状态始终为0的排查与解决
首先明确:状态值0对应iOS的ATTrackingManagerAuthorizationStatusNotDetermined,说明用户从未被触发过App Tracking授权请求,不是SDK故障,而是配置或代码遗漏导致的。以下是必查的几个点:
1. 必须添加App Tracking权限描述
iOS 14.5及以上版本要求,必须在Info.plist中配置NSUserTrackingUsageDescription(即「隐私 - 跟踪使用说明」),否则系统不会弹出授权弹窗,授权状态会一直停留在0。
配置方法:
- 打开Xcode的
Info.plist文件 - 新增一行,键选择
Privacy - Tracking Usage Description - 值填写跟踪用途(比如「为您提供更贴合需求的个性化广告服务」)
2. 主动触发App Tracking授权请求
你当前的代码只调用了Adjust.getAppTrackingAuthorizationStatus获取状态,但这个方法不会主动请求授权。必须先调用授权请求方法,让用户选择是否允许跟踪,之后才能获取到正确的状态值。
修正后的代码示例:
// 先请求授权,用户做出选择后再获取状态 Adjust.requestTrackingAuthorization((authStatus) => { console.log("授权请求回调状态 = " + authStatus); // 此时再获取最新状态 Adjust.getAppTrackingAuthorizationStatus((status) => { console.log("Authorization status = " + status); }); }); // 事件跟踪与转化值更新可正常保留,建议根据授权状态调整业务逻辑 var adjustEvent = new AdjustEvent("xyzabc"); Adjust.trackEvent(adjustEvent); Adjust.updateConversionValue(6);
3. 确认iOS端Adjust SDK初始化正确
检查你的iOS原生项目中,是否在AppDelegate的application:didFinishLaunchingWithOptions:方法里完成了Adjust的初始化:
#import "Adjust.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 替换成你的App Token,环境根据测试/生产切换 ADJConfig *config = [ADJConfig configWithAppToken:@"YOUR_APP_TOKEN" environment:ADJEnvironmentSandbox]; [Adjust appDidLaunch:config]; return YES; }
4. 跨平台框架适配检查(如果用React Native/Cordova等)
- 如果你用的是React Native:确认
react-native-adjust插件已正确链接,执行过pod install,且版本适配当前iOS系统版本 - 如果你用的是Cordova:确认
cordova-plugin-adjust已正确安装,且在config.xml中配置了正确的App Token与环境参数
内容的提问来源于stack exchange,提问作者mkHun
相关产品推荐
相关产品推荐

