Swift -GDPR Consent form returns Error: invalid app name

Swift -GDPR Consent form returns Error: invalid app name

出于某种原因,当我尝试加载 GDPR 同意书时,我不断收到错误消息:

Error: invalid app name.

它发生在这里:

form.load { [weak self](_ error: Error?) -> Void in
                    print("Load complete.")

    if let error = error {

        // *** HERE IS THE ERROR ***

        print("Error loading form: \(error.localizedDescription)")
        return
    }

当我对 invalid app name 进行全局搜索时,我被带到 consentform.html 文件:

// Set app name.
var appName = formInfo['app_name'] || '';
if (appName.length <= 0) {
  formLoadCompleted('Error: invalid app name.');
}

这表明 googleservice-plist 或我的 info.plist 或其他内容的某些值未被正确读取,但我不知道要查看哪个值。

在我的 info.plist 中,我正确设置了 GADApplicationIdentifier

为什么我的应用名称显示为 nil?

PACConsentInformation.sharedInstance.debugGeography = .EEA

    PACConsentInformation
        .sharedInstance
        .requestConsentInfoUpdate(forPublisherIdentifiers: ["pub-MY_PublisherID"]) { [weak self](error) in

            if let error = error { return }
            PACConsentInformation.sharedInstance.isRequestLocationInEEAOrUnknown {

                if PACConsentInformation.sharedInstance.consentStatus == PACConsentStatus.unknown {

                    guard let privacyUrl = URL(string: "My_Privacy_URL"),
                        let form = PACConsentForm(applicationPrivacyPolicyURL: privacyUrl) else {
                            return
                    }
                    form.shouldOfferPersonalizedAds = true
                    form.shouldOfferNonPersonalizedAds = true
                    form.shouldOfferAdFree = true

                    form.load { [weak self](_ error: Error?) -> Void in
                        print("Load complete.")

                        if let error = error {

                            // *** HERE IS THE ERROR ***

                            print("Error loading form: \(error.localizedDescription)")
                            return
                        }

                        // ...
                    }

                    return
                }
    }

我不得不深入挖掘以找出问题,但问题是 CFBundleDisplayName 或更好,但 info.plist 中的 Bundle Display Name(红色)是空白的:

如果 Bundle Display Name(红色)为空白,则 GDPR Consent 表单将 return 出错。您可以手动输入您的应用名称

只是 删除 整个(红色)Bundle Display Name k/v 字段。如果删除它,那么 GDPR Consent 将求助于使用 Bundle Name(黄色)。

无论你做什么,都不要犯错并删除Bundle Name(黄色)。

按照这 2 个答案了解 Bundle Display NameBundle Name 之间的解释:

Bundle Display Name explained

Bundle Display Name with pics