Browse Source

fix(隐私): 禁用Facebook登录和广告的用户跟踪功能

在iOS的Info.plist中明确禁用SKAdNetwork和广告跟踪端点
修改Facebook登录跟踪设置为limited模式
更新Podfile配置以禁用IDFA收集和自动日志事件
移除NSUserTrackingUsageDescription权限描述
newdev_shunjiawei
lxm 1 year ago
parent
commit
b28f50e864
  1. 22
      ios/Podfile
  2. 6
      ios/Runner/Info.plist
  3. 2
      lib/modules/login/controllers/facebookLogin.dart

22
ios/Podfile

@ -41,7 +41,7 @@ end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
# Ensure all pods use the same iOS deployment target
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.0'
@ -56,7 +56,7 @@ post_install do |installer|
## dart: PermissionGroup.calendar
'PERMISSION_EVENTS=1',
## dart: PermissionGroup.calendarFullAccess
'PERMISSION_EVENTS_FULL_ACCESS=1',
@ -66,6 +66,24 @@ post_install do |installer|
## dart: PermissionGroup.bluetooth
'PERMISSION_BLUETOOTH=1',
]
# 禁用用户跟踪相关功能
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'FBSDK_DISABLE_IDFA=1'
# 移除可能的用户跟踪权限描述
if target.name == 'Runner'
# 确保不包含NSUserTrackingUsageDescription
config.build_settings.delete('NSUserTrackingUsageDescription')
end
end
# 针对Facebook SDK禁用广告ID收集
if target.name.start_with?('FBSDKCoreKit') || target.name.start_with?('FacebookSDK')
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'FBSDK_DISABLE_IDFA=1'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'FBSDK_DISABLE_AUTO_LOG_APP_EVENTS=1'
end
end
end
end

6
ios/Runner/Info.plist

@ -57,6 +57,12 @@
<false/>
<key>FacebookClientToken</key>
<string>193d0a2b1757c41cfa557ea8e8f21c33</string>
<!-- 明确禁用用户跟踪功能 -->
<key>SKAdNetworkItems</key>
<array/>
<!-- 禁用广告跟踪 -->
<key>NSAdvertisingAttributionReportEndpoint</key>
<string></string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>

2
lib/modules/login/controllers/facebookLogin.dart

@ -56,7 +56,7 @@ class Facebook {
final nonce = sha256ofString(rawNonce);
final LoginResult loginResult = await FacebookAuth.instance
.login(
loginTracking: LoginTracking.enabled,
loginTracking: LoginTracking.limited, // 改为limited,禁用用户跟踪
nonce: nonce,
)
.catchError((onError) {

Loading…
Cancel
Save