ios - 将 FB SDK 更新到最新版本不起作用

标签 ios facebook fbsdk

我有一个使用旧版本 FBSDK 的遗留应用程序,每次登录 FB 开发人员仪表板时,我都会看到此警告:

Your Facebook SDK for iOS is out of date and missing important iOS 11 fixes that make it easier for people to log into your app. Upgrade Now

我已经使用 cocoapods 将我的 FB SDK 更新到 v4.40.0(已通过 NSLog [FBSDKSettings sdkVersion] 确认)。但现在让我感到困惑的是,即使 SDK 已成功更新,警告仍然存在。

FB 下达更新指示:

To make your app compatible with iOS 11, use the latest Facebook SDKs for iOS. If you link to the SDKs with CocoaPods, you must update your pods for the SDKs your app uses and recompile your app. You can also download the latest version of the Facebook iOS SDK, integrate it into your app, and recompile.

到目前为止我所做的是:
• 使用 cocoapods 更新 SDK ✅
• 重新编译应用 ✅

有谁知道这是警告没有消失的真正原因。

提前致谢。

最佳答案

我知道这是一个古老的查询,但如果有人偶然发现它,您可能会考虑以下几点。

a)Facebook 需要接收应用程序事件才能在仪表板上反射(reflect)更新。尝试触发一个事件。例如,启动应用程序。

b) 检查您是否正确初始化了 SDK。 在 didFinishLaunchingWithOptions 中添加 ApplicationDelegate.shared.initializeSDK()

c)由于 Apple 正在严格监控用户对 App Tracking 的同意,因此将 FacebookAutoLogAppEventsEnabledFacebookAdvertiserIDCollectionEnabled 添加到 info.plist 并分别设置适当的 bool 值。

推荐的方法是设置为与false相同,征求用户同意并在批准后,将值设置为true。使用以下代码。

if #available(iOS 14, *) {
      ATTrackingManager.requestTrackingAuthorization { status in
        switch status {
        case .authorized:
          Settings.shared.isAdvertiserTrackingEnabled = true
          Settings.shared.isAdvertiserIDCollectionEnabled = true
        case .denied:
          Settings.shared.isAdvertiserTrackingEnabled = false
          Settings.shared.isAdvertiserIDCollectionEnabled = false
        default:
          Settings.shared.isAdvertiserTrackingEnabled = false
          Settings.shared.isAdvertiserIDCollectionEnabled = false
        }
      }
}

d) 有时,您的应用程序的最低部署目标可能会阻止 SDK 更新到最新版本。要确认是否是这种情况,请将 pod 设置为 podfile 中的最新版本,如下所示:

pod 'FBSDKCoreKit', '~>15.0.0'

使用 pod updatepod install 更新 pod 如果最小部署目标阻碍了更新,您将收到如下错误:

[!] CocoaPods could not find compatible versions for pod "FBSDKCoreKit":
  In Podfile:
    FBSDKCoreKit (~> 15.0.0)

Specs satisfying the `FBSDKCoreKit (~> 15.0.0)` dependency were found, but they required a higher minimum deployment target.

如果发生这种情况,请尝试更改应用的最低部署目标。还要确保您的 podfile 中的平台也设置为新的和更高的最低部署目标,例如 platform :ios, '12.0'

希望对你有帮助!

关于ios - 将 FB SDK 更新到最新版本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55040745/

相关文章:

php - Facebook PHP SDK : Upload Event Cover Photo

javascript - 关联为测试用户角色的 facebook 无法获取 user_likes

ios - 我试图使用 graph api v2.4 获取我的 friend 姓名和 ID,但数据返回空 :

ios - 对齐文本与填充 SwiftUI

ios - 如何检测 PKAddPassesViewController 中的添加按钮按下

IOS 10/plist/LSApplicationQueriesSchemes

java - AsyncTask 和 Handler 总是在注销后启动 Activity 两次

ios - Facebook iOS API : how to get public profile URL

ios - 从 Facebook FBSDK iOS 4.x(使用 Swift)获取值?

ios - 下载整个网站