This script scans a specified project directory for API usage and dependencies, updates or creates a PrivacyInfo.xcprivacy
file, and generates a text report of the findings.
- https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/
- https://developer.apple.com/support/third-party-SDK-requirements/
- Prerequisites: Ensure Python 3 is installed on your system.
- Running the script:
- Open a terminal.
- Navigate to the script's directory.
- Run the script using the command:
python3 update_privacy_info.py <path-to-your-project-directory>
- Follow the prompts to choose whether to search for dependencies and whether to exclude any directories.
- "Do you want to search for dependencies? (y/n): " - Answer 'y' to search for dependencies or 'n' to skip this step.
- "Do you want to exclude certain directories? (y/n): " - Answer 'y' if you want to exclude directories from the scan.
- If you chose 'y', you will be prompted: "Please enter directories to exclude (separated by space): ", where you can specify the directories to exclude.
- "Do you want to download privacy_info for dependencies (y/n):" - Answer 'y' to download for privacyinfo or 'n' to skip this step.
此腳本掃描指定的項目目錄,是否有使用Apple 列出需要註記API和列出套件,更新或創建PrivacyInfo.xcprivacy
文件,並生成搜索結果的文本報告。
- https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/
- https://developer.apple.com/support/third-party-SDK-requirements/
- **前提條件:**確保系統上安裝了Python 3。
- 運行腳本:
- 打開終端。
- 導航至腳本所在目錄。
- 使用以下命令運行腳本:
python3 update_privacy_info.py <項目目錄路徑>
- 按提示操作選擇是否搜索套件以及是否排除任何目錄。
- "您是否要搜索套件?(y/n): " - 回答'y'開始搜索套件,或者'n'跳過此步驟。
- "您是否要排除某些目錄?(y/n): " - 如果您想從掃描中排除目錄,請回答'y'。
- 如果您選擇了'y',將提示:"請輸入要排除的目錄(用空格分隔): ",在此處指定要排除的目錄。
- "是否要下載套件的 privacy_info (y/n):" - 回答'y'開始下載套件的privacyinfo檔案,或者'n'跳過此步驟。(3/20新增)
如果選下載套件會依據URL 下載,下載完成會新增資料夾 Deps_PrivacyInfos
裡面包涵套件的PrivacyInfo
套件名稱 | 來源 |
Abseil | |
AFNetworking | |
Alamofire | |
AppAuth | |
BoringSSL | No,Github:https://github.com/google/boringssl |
openssl_grpc | No,Github:openssl/openssl#23262 |
Capacitor | |
Charts | |
connectivity_plus | |
Cordova | |
device_info_plus | |
DKImagePickerController | |
DKPhotoGallery | |
FBAEMKit | |
FBLPromises | |
FBSDKCoreKit | |
FBSDKCoreKit_Basics | |
FBSDKLoginKit | |
FBSDKShareKit | |
file_picker | |
FirebaseABTesting | |
FirebaseAuth | |
FirebaseCore | |
FirebaseCoreDiagnostics | No,Github: |
FirebaseCoreExtension | |
FirebaseCoreInternal | |
FirebaseCrashlytics | |
FirebaseDynamicLinks | |
FirebaseFirestore | |
FirebaseInstallations | |
FirebaseMessaging | |
FirebaseRemoteConfig | |
Flutter | |
flutter_inappwebview | |
flutter_local_notifications | |
fluttertoast | |
FMDB | |
geolocator_apple | |
GoogleDataTransport | |
GoogleSignIn | |
GoogleToolboxForMac | |
GoogleUtilities | |
grpcpp | |
GTMAppAuth | |
GTMSessionFetcher | |
hermes | No,GitHub:https://github.com/facebook/hermes |
image_picker_ios | |
IQKeyboardManager | |
IQKeyboardManagerSwift | |
Kingfisher | |
leveldb | No,GitHub:https://github.com/google/leveldb |
Lottie | |
MBProgressHUD | |
nanopb | |
OneSignal | |
OneSignalCore | |
OneSignalExtension | |
OneSignalOutcomes | |
OpenSSL | No,GitHub:https://github.com/openssl/openssl |
OrderedSet | No,GitHub:https://github.com/Weebly/OrderedSet |
package_info | No,GitHub:https://github.com/flutter/plugins |
package_info_plus | |
path_provider | |
path_provider_ios | |
Promises | |
Protobuf | |
Reachability | |
RealmSwift | |
RxCocoa | No,GitHub:ReactiveX/RxSwift#2567 |
RxRelay | No,GitHub:ReactiveX/RxSwift#2567 |
RxSwift | No,GitHub:ReactiveX/RxSwift#2567 |
SDWebImage | |
share_plus | |
shared_preferences_ios | |
SnapKit | |
sqflite | |
Starscream | |
SVProgressHUD | |
SwiftyGif | |
SwiftyJSON | |
Toast | |
UnityFramework | No,GitHub: |
url_launcher | |
url_launcher_ios | |
video_player_avfoundation | |
wakelock | |
webview_flutter_wkwebview |