Apple 拒绝应用,因为 AppTrackingTransparency.framework在应用中找不到它

如何解决Apple 拒绝应用,因为 AppTrackingTransparency.framework在应用中找不到它

今天早上刚从 Apple 收到这条消息:

We noticed that your Kids Category app includes analytics,advertising and collects,transmits,or has the ability to share personal information or device information with third parties. Specifically:

- Your app implements the App Tracking Transparency framework,which is used when apps collect data about users and share it with third-parties for tracking purposes. Since Kids Category apps are not allowed to collect,transmit or share identifiable information with third-parties,you should not implement App Tracking Transparency in your app.

但是,在所有 node_modules 和 pod 中进行了一些严格的搜索后,我找不到任何对 AppTrackingTransparency 框架的引用。我怎样才能找出它的包含位置并删除它?

最有可能的是,Firebase Analytics 或 Onesignal 都包含该框架。我只是在任何地方都看不到对它的任何引用。

package.json

{
  "name": "Einee","version": "1.8.45","private": true,"husky": {
    "hooks": {
      "post-merge": "if git-branch-is beta -q || git-branch-is master -q; then yarn version --patch; fi"
    }
  },"scripts": {
    "start": "react-native start","ios": "react-native run-ios --device","run:ios:8": "react-native run-ios --simulator=\"iPhone 8\"","run:ios:iPad": "react-native run-ios --simulator=\"iPad Pro (12.9-inch) (3rd generation)\"","lint:fix": "eslint --fix --ext .js,.jsx,.ts,.tsx ./","postversion": "react-native-version --reset-build","patch-version": "yarn version --patch"
  },"jest": {
    "preset": "react-native"
  },"dependencies": {
    "@react-native-async-storage/async-storage": "^1.13.2","@react-native-community/async-storage": "^1.7.1","@react-native-community/blur": "^3.4.1","@react-native-community/masked-view": "^0.1.6","@react-native-community/picker": "^1.8.1","@react-native-firebase/analytics": "10.5.1","@react-native-firebase/app": "10.5.0","@react-native-firebase/crashlytics": "10.5.1","@terrysahaidak/react-native-devmenu": "^3.0.0","add": "^2.0.6","amplitude-js": "^7.3.0","lodash": "^4.17.4","moment": "^2.22.2","react": "16.13.1","react-native": "0.63.4","react-native-config": "^1.3.3","react-native-dev-menu": "^4.0.0","react-native-device-info": "^8.0.1","react-native-emoji": "^1.8.0","react-native-fast-image": "^8.3.2","react-native-fs": "^2.16.6","react-native-gesture-handler": "^1.5.6","react-native-haptic-Feedback": "^1.9.0","react-native-iap": "5.2.3","react-native-loading-spinner-overlay": "^2.0.0","react-native-mail": "^6.0.0","react-native-media-queries": "^0.3.0","react-native-onesignal": "^4.0.3","react-native-picker-select": "^8.0.2","react-native-rate": "^1.1.10","react-native-reanimated": "^1.7.0","react-native-restart": "^0.0.20","react-native-safe-area-context": "^3.1.8","react-native-screens": "^2.0.0-alpha.33","react-native-share": "^5.1.0","react-native-sound": "^0.11.0","react-native-swiper": "^1.6.0","react-native-tts": "^3.2.0","react-native-vector-icons": "^8.0.0","react-navigation": "^4.1.0","react-navigation-stack": "^2.1.0","react-redux": "^7.1.3","redux": "^4.0.5","redux-action-listeners": "^1.0.2","redux-thunk": "^2.2.0","rn-fetch-blob": "^0.12.0","styled-components": "^5.1.1"
  },"devDependencies": {
    "@babel/core": "^7.8.4","@babel/runtime": "^7.8.4","@react-native-community/eslint-config": "^2.0.0","@types/lodash": "^4.14.165","@types/react": "^17.0.0","@types/react-native": "^0.63.37","@types/react-navigation": "^3.4.0","@types/react-redux": "^7.1.11","@typescript-eslint/eslint-plugin": "^4.14.1","@typescript-eslint/parser": "^4.14.1","babel-jest": "^26.6.3","babel-plugin-module-resolver": "^4.0.0","enzyme": "^3.10.0","enzyme-adapter-react-16": "^1.14.0","enzyme-to-json": "^3.3.5","eslint": "^7.18.0","eslint-config-airbnb-typescript": "^12.0.0","eslint-config-prettier": "^7.2.0","eslint-import-resolver-typescript": "^2.3.0","eslint-plugin-import": "^2.22.1","eslint-plugin-jsx-a11y": "^6.4.1","eslint-plugin-prettier": "^3.3.1","eslint-plugin-react": "^7.22.0","git-branch-is": "^4.0.0","husky": "4.3.8","jest": "^26.6.3","jest-environment-enzyme": "^7.0.2","jest-enzyme": "^7.0.2","metro-react-native-babel-preset": "^0.64.0","pre-push": "^0.1.1","prettier": "^2.2.1","react-dom": "^17.0.1","react-native-debugger-open": "^0.3.25","react-native-version": "^4.0.0","react-test-renderer": "17.0.1","redux-mock-store": "^1.5.3","typescript": "4.0.5"
  }
}

Podfile

require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios,'10.0'

target 'Einee' do
  config = use_native_modules!

  use_react_native!(:path => config["reactNativePath"])

  target 'EineeTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled,Flipper will not work and
  # you should disable these next few lines.
  use_flipper!
  post_install do |installer|
    flipper_post_install(installer)
  end
end

target 'OnesignalNotificationServiceExtension' do
  pod 'Onesignal','>= 3.0','< 4.0'
end

target 'Einee-tvOS' do
  # Pods for Einee-tvOS

  target 'Einee-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end
end

解决方法

显然问题出在 Firebase Analytics SDK 上,它尚未经过优化,无法获得 Apple 的儿童应用批准。所以我把它删除了,没有问题。

,

您应该仔细检查您的 Info.plist,您可能已经包含了这样的内容隐私 - 跟踪使用说明

,

这是 App Tracking Transparency 如何工作的参考。 https://developer.apple.com/documentation/apptrackingtransparency

查看上面链接中的第 2 步和第 3 步,我认为您会发现 requestTrackingAuthorization 函数或 trackingAuthorizationStatus 在您的代码中的某个地方使用了 ATTrackingManager 来触发拒绝。

即使你没有,我还是想补充一下,你应该 还要检查您的 Info.plist 中是否有 NSUserTrackingUsageDescription,它会转换为隐私 - 跟踪使用说明并将其删除。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?