uni-app 你的 App 包含 NSUserTrackingUsageDescription,表示你将会请求追踪用户。

发布于 1周前 作者 zlyuanteng 来自 Uni-App

uni-app 你的 App 包含 NSUserTrackingUsageDescription,表示你将会请求追踪用户。
你的 App 包含 NSUserTrackingUsageDescription,这表示你将会请求追踪用户。要在 App 产品页面上更新此信息,你必须注明哪些数据类型会追踪用户。如果此描述有误,请更新你的 App 二进制文件,并将新的构建版本上传到 App Store Connect。

我已经吧,使用广告标识(IDFA) 这个选项已经取消了,还是出现以上问题。

图片1 图片2 图片3


2 回复

到底是什么问题,社区开发者知道什么情况吗???


在uni-app中,如果你需要包含NSUserTrackingUsageDescription以请求追踪用户(通常用于iOS平台的广告追踪或类似功能),你需要进行一些额外的配置,尤其是在iOS原生代码层面。虽然uni-app主要使用Vue.js进行跨平台开发,但对于某些iOS特定的配置,你可能需要修改Xcode项目或通过manifest.json进行配置。

以下是如何在uni-app项目中处理NSUserTrackingUsageDescription的步骤和代码示例:

  1. manifest.json中添加iOS平台配置

    你可以在manifest.json文件中为iOS平台添加必要的权限描述。虽然NSUserTrackingUsageDescription无法通过manifest.json直接添加,但你可以通过自定义原生插件或修改Xcode项目来实现。

    {
      "mp-weixin": {},
      "app-plus": {
        "distribute": {
          "ios": {
            "plist": [
              {
                "key": "NSUserTrackingUsageDescription",
                "string": "App需要访问您的广告标识符来提供个性化广告"
              }
            ]
          }
        }
      }
    }
    

    注意:上述代码仅为示例,实际上manifest.json并不直接支持NSUserTrackingUsageDescription的添加。你需要使用其他方法。

  2. 通过自定义原生插件添加权限

    创建一个自定义原生插件,并在iOS原生代码中添加NSUserTrackingUsageDescription

    • native-plugins目录下创建一个新的插件目录,如MyTrackingPlugin

    • MyTrackingPlugin/ios/MyTrackingPlugin/MyTrackingPlugin.m中添加以下代码:

      #import <Foundation/Foundation.h>
      #import <UIKit/UIKit.h>
      
      @interface MyTrackingPlugin : NSObject
      
      @end
      
      @implementation MyTrackingPlugin
      
      + (void)initialize {
          [super initialize];
          // 添加权限描述到Info.plist
          NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
          if (![infoDict objectForKey:@"NSUserTrackingUsageDescription"]) {
              NSMutableDictionary *mutableInfoDict = [infoDict mutableCopy];
              [mutableInfoDict setObject:@"App需要访问您的广告标识符来提供个性化广告" forKey:@"NSUserTrackingUsageDescription"];
              [[NSBundle mainBundle] setInfoDictionary:mutableInfoDict];
          }
      }
      
      @end
      
  3. 在Xcode中配置

    打开Xcode项目,确保Info.plist文件中包含NSUserTrackingUsageDescription键及其对应的描述字符串。

    <key>NSUserTrackingUsageDescription</key>
    <string>App需要访问您的广告标识符来提供个性化广告</string>
    
  4. 请求权限

    在你的Vue.js代码中,如果你需要在运行时请求权限,你可能需要使用一个原生模块来调用iOS的ATTrackingManager。这通常涉及到更复杂的原生开发,并且可能需要创建一个更复杂的原生插件来封装这些功能。

请注意,上述步骤和代码示例主要用于说明如何在uni-app项目中处理iOS特定的权限请求。实际实现可能需要根据你的具体需求进行调整。

回到顶部