iOS上架被拒-Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage AppTrackingTransparenc...

iOS上架被拒-Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage AppTrackingTransparency AppTrackingTransparency

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

We noticed that your app requests the user’s consent to access the AppTrackingTransparency framework, but doesn’t sufficiently explain the use of the AppTrackingTransparency framework in the purpose string.

To help users make informed decisions about how their data is used, all permission request alerts need to specify how your app will use the requested information.

Next Steps

Please revise the relevant purpose string in your app’s Info.plist file to specify why your app needs access to the user's AppTrackingTransparency framework. Make sure the purpose string includes an example of how the user's data will be used.

You can modify your app's Info.plist file using the property list editor in Xcode.

Resources

- See examples of helpful, informative purpose strings.
- Review a list of relevant property list keys.

Please see attached screenshot for details.

解决方法:

  1. 添加info.plist文件对应的描述信息
<key>NSUserTrackingUsageDescription</key>
<string>我们的第三方库(firebase)之一需要跟踪使用情况。我们个人不跟踪用户的活动。</string>
  1. 在第三方调用之前请求IDFA权限,其他权限一样
import UIKit
import AppTrackingTransparency

class WMPermissionRequest: NSObject {
    //NEWLY ADDED PERMISSIONS FOR iOS 14
    static func requestIDFAPermission() {
        if #available(iOS 14, *) {
            #if DEBUG
            print("IDFA status = \(ATTrackingManager.trackingAuthorizationStatus)")
            #endif
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                case .authorized:
                    // Tracking authorization dialog was shown
                    // and we are authorized
                    print("Authorized")
                    // Now that we are authorized we can get the IDFA
                    print(ASIdentifierManager.shared().advertisingIdentifier)
                case .denied:
                    // Tracking authorization dialog was
                    // shown and permission is denied
                    print("Denied")
                case .notDetermined:
                    // Tracking authorization dialog has not been shown
                    print("Not Determined")
                case .restricted:
                    print("Restricted")
                @unknown default:
                    print("Unknown")
                }
            }
        }
    }
  

}

调用

//请求权限 ios 14.5
WMPermissionRequest.requestIDFAPermission()

注:要在firebase初始化之前调用

参考文章

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容