Facebook iOS SDK 链接不需要的 AdSupport 库

问题描述

TL;DR:将最新的 Facebook iOS SDK 添加到新的空项目会将 AdSupport 放在链接表中。 AdSupport 提供 ASIdentifierManager,后者提供 IDFA。对于儿童应用,这意味着自动拒绝。我的问题是:是否有可能停止这种跟踪的传递性使用?

详情

可以在“[T]he Facebook SDK 不需要包含 AdSupport.framework”这句话的 lots 中找到 copies。但是他们没有说明如何阻止编译器将其添加链接表中。看起来 Facebook 正试图强迫我们进行跟踪,无论我们是否愿意。 “ASIdentifierManager”的出现次数越来越多:

- SDK 7: 13 appearances
- SDK 9: 30
- SDK 11: 66

复制

(短)

  1. 通过 SPM 添加 SDK。
  2. 生成的可执行文件上运行 otool 并观察
    Load command 18
             cmd LC_LOAD_DYLIB
         cmdsize 88
            name /System/Library/Frameworks/AdSupport.framework/AdSupport

(长)

  1. 从一页空白应用开始,将其命名为 TestFBSDK
  2. 使用 Swift 包管理器向 https://github.com/facebook/facebook-ios-sdk.git 添加依赖项
  3. 请勿导入或使用 SDK
  4. 为“任何 iOS 设备”构建应用存档
  5. 在“管理器”窗口的“档案”窗格中查找新档案。
  6. 右键单击存档条目并选择 Show in Finder
  7. 右键单击存档文件并选择 Show Package Contents
  8. 导航到 Products/Applications/ 文件夹。
  9. 打开终端,输入 cd 并将应用图标拖到终端窗口。
    • 你会得到类似的东西 cd /.../Library/Developer/Xcode/.../TestFBSDK.app
  10. 按 Enter 键更改目录
  11. 运行命令
    • otool -l TestFBSDK | grep AdSupport -A 3 -B 3
  12. 运行命令
    • nm TestFBSDK | grep ASIdentifierManager

另见

十年前有很多关于这个的帖子,但我看不到最新的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)