Ausgabe
Ich bin kein Neuling in der iOS-Entwicklung, aber dies ist das erste Mal, dass ich mich mit Facebook SDK befasse. Ich habe den FB-Leitfaden befolgt, um ein Ereignis in meiner App einzurichten (installiertes SDK-Swift-Paket, FBSDKCoreKit-Methoden zu AppDelegate hinzugefügt), bis zur allerletzten Anweisung zum Einholen der Benutzereinwilligung mit iOS 14.
Der Facebook-Leitfaden stellt dieses Code-Snippet zur Verfügung, das verwendet werden kann, wenn die Zustimmung eingeholt wird mit requestTrackingAuthorization()
:
FBAdSettings.setAdvertiserTrackingEnabled(true)
Das Problem ist, dass die FBAdSettings
Klasse in meinem Code nicht gültig zu sein scheint (Xcode beschwert sich, dass sie nicht im Gültigkeitsbereich gefunden werden kann), obwohl ich es getan habe import FBSDKCoreKit
und es keine anderen FB-Module zum Importieren gibt.
Hier ist mein Code in voller Länge:
import UIKit
import AppTrackingTransparency
import FBSDKCoreKit
extension ViewController {
func requestTrackingPermission() {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { (status) in
switch status {
case .authorized:
FBAdSettings.setAdvertiserTrackingEnabled(true) //Cannot find 'FBAdSettings' in scope
...
}
}
} else {
// Fallback on earlier versions
}
}
}
Was fehlt mir hier?
Lösung
Die Dokumentation ist zumindest irreführend. Sie müssen importieren FBSDKCoreKit.FBSDKSettings
und das Snippet ist Settings.setAdvertiserTrackingEnabled(true)
. Wie Sie sehen können, ist es nicht FBAdSettings
nur Settings
.
Beantwortet von – Ionut
Antwort geprüft von – Jay B. (FixError Admin)