如何解决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 举报,一经查实,本站将立刻删除。