I have the following in my AppDelegate
//added these 3 methods
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
window?.makeKeyAndVisible()
GIDSignIn.sharedInstance()?.clientID = Environment.googleClientId
FirebaseApp.configure()
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions);
let adjustAppToken = Environment.adjustToken
var environment = ADJEnvironmentSandbox
if (Environment.environment == "prod") {
environment = ADJEnvironmentProduction
}
let adjustConfig = ADJConfig(
appToken: adjustAppToken,
environment: environment)
adjustConfig?.logLevel = ADJLogLevelVerbose
adjustConfig?.delayStart = 2.5
adjustConfig?.delegate = self
Adjust.appDidLaunch(adjustConfig)
var configFlurryAPIKey = "x";
if (!isDev) {
configFlurryAPIKey = "x";
}
FlurryMessaging.setAutoIntegrationForMessaging()
// Step2 : (Optional) Get a callback
FlurryMessaging.setMessagingDelegate(self)
let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0"
// Step3 : Start Flurry session
let builder = FlurrySessionBuilder.init()
.withAppVersion(version)
.withIncludeBackgroundSessions(inMetrics: true)
.withCrashReporting(true)
.withSessionContinueSeconds(10)
.withLogLevel(FlurryLogLevelAll)
Flurry.startSession(configFlurryAPIKey, with: builder)
// registerForPushNotifications()
Purchases.debugLogsEnabled = true
Purchases.configure(withAPIKey: Environment.revenueCatKey)
Amplitude.instance().trackingSessionEvents = true
// Initialize SDK
let amplitudeKey = Environment.amplitudeKey
Amplitude.instance().initializeApiKey(amplitudeKey)
if #available(iOS 14, *) {
print("status notDetermined == \(ATTrackingManager.trackingAuthorizationStatus == .notDetermined)")
print("status authorized == \(ATTrackingManager.trackingAuthorizationStatus == .authorized)")
print("IDFA == \(ASIdentifierManager.shared().advertisingIdentifier)")
ATTrackingManager.requestTrackingAuthorization { (status) in
var statusStr = "";
if (status == .authorized) {
statusStr = "authorized"
} else if (status == .denied) {
statusStr = "denied"
} else {
statusStr = "restricted"
}
let identify = AMPIdentify().set("att", value: statusStr as NSObject)
Amplitude.instance().identify(identify!)
}
}
Even though I'm calling App Transparency, Apple Review sent me this message
Starting with iOS 14.5, apps on the App Store need to receive the user’s permission through the AppTrackingTransparency framework before collecting data used to track them. This requirement protects the privacy of App Store users.
Next Steps
Here are two ways to resolve this issue:
If you do not currently track, or decide to stop tracking, update your app privacy information in App Store Connect. You must have the Account Holder or Admin role to update app privacy information.
If you track users, you must implement App Tracking Transparency and request permission before collecting data used to track. When you resubmit, indicate in the Review Notes where the permission request is located.
Does anyone know what I'm doing wrong?