@@ -8,36 +8,38 @@ class AnalyticsReactNativePluginIdfa: RCTEventEmitter {
8
8
override static func requiresMainQueueSetup( ) -> Bool {
9
9
return true
10
10
}
11
-
12
- @available ( iOS 14 , * )
13
11
14
12
@objc
15
13
func getTrackingAuthorizationStatus(
16
14
_ resolve: RCTPromiseResolveBlock ,
17
15
rejecter reject: RCTPromiseRejectBlock
18
16
) -> Void {
19
- let status = ATTrackingManager . trackingAuthorizationStatus
20
- if status == . notDetermined {
21
- // we don't know, so should ask the user.
22
- askForPermission ( )
23
- }
24
-
25
- let trackingStatus = statusToString ( status)
26
- var idfa = fallbackValue
27
- var adTrackingEnabled = false
28
-
29
- if status == . authorized {
30
- adTrackingEnabled = true
31
- idfa = ASIdentifierManager . shared ( ) . advertisingIdentifier. uuidString
17
+ let adTrackingEnabled : Bool
18
+ let trackingStatus : String
19
+
20
+ if #available( iOS 14 , * ) {
21
+ let status = ATTrackingManager . trackingAuthorizationStatus
22
+ if status == . notDetermined {
23
+ // we don't know, so should ask the user.
24
+ askForPermission ( )
25
+ }
26
+
27
+ adTrackingEnabled = status == . authorized
28
+ trackingStatus = statusToString ( status)
29
+ } else {
30
+ adTrackingEnabled = ASIdentifierManager . shared ( ) . isAdvertisingTrackingEnabled
31
+ trackingStatus = adTrackingEnabled ? " authorized " : " denied "
32
32
}
33
+
34
+ let idfa = adTrackingEnabled ? ASIdentifierManager . shared ( ) . advertisingIdentifier. uuidString : fallbackValue
33
35
34
36
let context : [ String : Any ] = [
35
37
" adTrackingEnabled " : adTrackingEnabled,
36
38
" advertisingId " : idfa!,
37
39
" trackingStatus " : trackingStatus
38
40
]
39
41
40
- _ = JSONSerialization . isValidJSONObject ( context)
42
+ assert ( JSONSerialization . isValidJSONObject ( context) )
41
43
42
44
resolve ( context) ;
43
45
}
0 commit comments