forked from trent_larson/crowd-funder-for-time-pwa
Merge branch 'master' into ios-contact-copy
This commit is contained in:
@@ -403,7 +403,7 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 39;
|
||||
CURRENT_PROJECT_VERSION = 40;
|
||||
DEVELOPMENT_TEAM = GM3FS5JQPH;
|
||||
ENABLE_APP_SANDBOX = NO;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||
@@ -413,7 +413,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.6;
|
||||
MARKETING_VERSION = 1.0.7;
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = app.timesafari;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
@@ -430,7 +430,7 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 39;
|
||||
CURRENT_PROJECT_VERSION = 40;
|
||||
DEVELOPMENT_TEAM = GM3FS5JQPH;
|
||||
ENABLE_APP_SANDBOX = NO;
|
||||
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||
@@ -440,7 +440,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.6;
|
||||
MARKETING_VERSION = 1.0.7;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = app.timesafari;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
|
||||
|
||||
@@ -1,30 +1,38 @@
|
||||
## 1.4.1
|
||||
|
||||
- Fix macOS app re-signing issue.
|
||||
- Automatically enable Hardened Runtime in macOS codesign.
|
||||
- Add clean script.
|
||||
|
||||
## 1.4.0
|
||||
|
||||
- Support for macOS app ([#9](https://github.com/crasowas/app_privacy_manifest_fixer/issues/9)).
|
||||
|
||||
## 1.3.11
|
||||
|
||||
- Fix install issue by skipping `PBXAggregateTarget` ([#4](https://github.com/crasowas/app_privacy_manifest_fixer/issues/4)).
|
||||
|
||||
## 1.3.10
|
||||
|
||||
- Fix app re-signing issue.
|
||||
- Enhance Build Phases script robustness.
|
||||
|
||||
## 1.3.9
|
||||
|
||||
- Add log file output.
|
||||
|
||||
## 1.3.8
|
||||
|
||||
- Add version info to privacy access report.
|
||||
- Remove empty tables from privacy access report.
|
||||
|
||||
## 1.3.7
|
||||
|
||||
- Enhance API symbols analysis with strings tool.
|
||||
- Improve performance of API usage analysis.
|
||||
|
||||
## 1.3.5
|
||||
|
||||
- Fix issue with inaccurate privacy manifest search.
|
||||
- Disable dependency analysis to force the script to run on every build.
|
||||
- Add placeholder for privacy access report.
|
||||
@@ -32,27 +40,34 @@
|
||||
- Add examples for privacy access report.
|
||||
|
||||
## 1.3.0
|
||||
|
||||
- Add privacy access report generation.
|
||||
|
||||
## 1.2.3
|
||||
|
||||
- Fix issue with relative path parameter.
|
||||
- Add support for all application targets.
|
||||
|
||||
## 1.2.1
|
||||
|
||||
- Fix backup issue with empty user templates directory.
|
||||
|
||||
## 1.2.0
|
||||
|
||||
- Add uninstall script.
|
||||
|
||||
## 1.1.2
|
||||
|
||||
- Remove `Templates/.gitignore` to track `UserTemplates`.
|
||||
- Fix incorrect use of `App.xcprivacy` template in `App.framework`.
|
||||
|
||||
## 1.1.0
|
||||
|
||||
- Add logs for latest release fetch failure.
|
||||
- Fix issue with converting published time to local time.
|
||||
- Disable showing environment variables in the build log.
|
||||
- Add `--install-builds-only` command line option.
|
||||
|
||||
## 1.0.0
|
||||
- Initial version.
|
||||
|
||||
- Initial version.
|
||||
|
||||
@@ -150,6 +150,7 @@ The privacy manifest templates are stored in the [`Templates`](https://github.co
|
||||
### Template Types
|
||||
|
||||
The templates are categorized as follows:
|
||||
|
||||
- **AppTemplate.xcprivacy**: A privacy manifest template for the app.
|
||||
- **FrameworkTemplate.xcprivacy**: A generic privacy manifest template for frameworks.
|
||||
- **FrameworkName.xcprivacy**: A privacy manifest template for a specific framework, available only in the `Templates/UserTemplates` directory.
|
||||
@@ -157,20 +158,24 @@ The templates are categorized as follows:
|
||||
### Template Priority
|
||||
|
||||
For an app, the priority of privacy manifest templates is as follows:
|
||||
|
||||
- `Templates/UserTemplates/AppTemplate.xcprivacy` > `Templates/AppTemplate.xcprivacy`
|
||||
|
||||
For a specific framework, the priority of privacy manifest templates is as follows:
|
||||
|
||||
- `Templates/UserTemplates/FrameworkName.xcprivacy` > `Templates/UserTemplates/FrameworkTemplate.xcprivacy` > `Templates/FrameworkTemplate.xcprivacy`
|
||||
|
||||
### Default Templates
|
||||
|
||||
The default templates are located in the `Templates` root directory and currently include the following templates:
|
||||
|
||||
- `Templates/AppTemplate.xcprivacy`
|
||||
- `Templates/FrameworkTemplate.xcprivacy`
|
||||
|
||||
These templates will be modified based on the API usage analysis results, especially the `NSPrivacyAccessedAPIType` entries, to generate new privacy manifests for fixes, ensuring compliance with App Store requirements.
|
||||
|
||||
**If adjustments to the privacy manifest template are needed, such as in the following scenarios, avoid directly modifying the default templates. Instead, use a custom template. If a custom template with the same name exists, it will take precedence over the default template for fixes.**
|
||||
|
||||
- Generating a non-compliant privacy manifest due to inaccurate API usage analysis.
|
||||
- Modifying the reason declared in the template.
|
||||
- Adding declarations for collected data.
|
||||
@@ -198,6 +203,7 @@ The privacy access API categories and their associated declared reasons in `Fram
|
||||
### Custom Templates
|
||||
|
||||
To create custom templates, place them in the `Templates/UserTemplates` directory with the following structure:
|
||||
|
||||
- `Templates/UserTemplates/AppTemplate.xcprivacy`
|
||||
- `Templates/UserTemplates/FrameworkTemplate.xcprivacy`
|
||||
- `Templates/UserTemplates/FrameworkName.xcprivacy`
|
||||
@@ -205,6 +211,7 @@ To create custom templates, place them in the `Templates/UserTemplates` director
|
||||
Among these templates, only `FrameworkTemplate.xcprivacy` will be modified based on the API usage analysis results to adjust the `NSPrivacyAccessedAPIType` entries, thereby generating a new privacy manifest for framework fixes. The other templates will remain unchanged and will be directly used for fixes.
|
||||
|
||||
**Important Notes:**
|
||||
|
||||
- The template for a specific framework must follow the naming convention `FrameworkName.xcprivacy`, where `FrameworkName` should match the name of the framework. For example, the template for `Flutter.framework` should be named `Flutter.xcprivacy`.
|
||||
- For macOS frameworks, the naming convention should be `FrameworkName.Version.xcprivacy`, where the version name is added to distinguish different versions. For a single version macOS framework, the `Version` is typically `A`.
|
||||
- The name of an SDK may not exactly match the name of the framework. To determine the correct framework name, check the `Frameworks` directory in the application bundle after building the project.
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
```shell
|
||||
sh install.sh <project_path>
|
||||
```
|
||||
|
||||
|
||||
- 如果是 Flutter 项目,`project_path`应为 Flutter 项目中的`ios/macos`目录路径。
|
||||
- 重复运行安装命令时,工具会先移除现有安装(如果有)。若需修改命令行选项,只需重新运行安装命令,无需先卸载。
|
||||
|
||||
@@ -150,6 +150,7 @@ sh clean.sh
|
||||
### 模板类型
|
||||
|
||||
模板分为以下几类:
|
||||
|
||||
- **AppTemplate.xcprivacy**:App 的隐私清单模板。
|
||||
- **FrameworkTemplate.xcprivacy**:通用的 Framework 隐私清单模板。
|
||||
- **FrameworkName.xcprivacy**:特定的 Framework 隐私清单模板,仅在`Templates/UserTemplates`目录有效。
|
||||
@@ -157,20 +158,24 @@ sh clean.sh
|
||||
### 模板优先级
|
||||
|
||||
对于 App,隐私清单模板的优先级如下:
|
||||
|
||||
- `Templates/UserTemplates/AppTemplate.xcprivacy` > `Templates/AppTemplate.xcprivacy`
|
||||
|
||||
对于特定的 Framework,隐私清单模板的优先级如下:
|
||||
|
||||
- `Templates/UserTemplates/FrameworkName.xcprivacy` > `Templates/UserTemplates/FrameworkTemplate.xcprivacy` > `Templates/FrameworkTemplate.xcprivacy`
|
||||
|
||||
### 默认模板
|
||||
|
||||
默认模板位于`Templates`根目录,目前包括以下模板:
|
||||
|
||||
- `Templates/AppTemplate.xcprivacy`
|
||||
- `Templates/FrameworkTemplate.xcprivacy`
|
||||
|
||||
这些模板将根据 API 使用分析结果进行修改,特别是`NSPrivacyAccessedAPIType`条目将被调整,以生成新的隐私清单用于修复,确保符合 App Store 要求。
|
||||
|
||||
**如果需要调整隐私清单模板,例如以下场景,请避免直接修改默认模板,而是使用自定义模板。如果存在相同名称的自定义模板,它将优先于默认模板用于修复。**
|
||||
|
||||
- 由于 API 使用分析结果不准确,生成了不合规的隐私清单。
|
||||
- 需要修改模板中声明的理由。
|
||||
- 需要声明收集的数据。
|
||||
@@ -198,6 +203,7 @@ sh clean.sh
|
||||
### 自定义模板
|
||||
|
||||
要创建自定义模板,请将其放在`Templates/UserTemplates`目录,结构如下:
|
||||
|
||||
- `Templates/UserTemplates/AppTemplate.xcprivacy`
|
||||
- `Templates/UserTemplates/FrameworkTemplate.xcprivacy`
|
||||
- `Templates/UserTemplates/FrameworkName.xcprivacy`
|
||||
@@ -205,6 +211,7 @@ sh clean.sh
|
||||
在这些模板中,只有`FrameworkTemplate.xcprivacy`会根据 API 使用分析结果对`NSPrivacyAccessedAPIType`条目进行调整,以生成新的隐私清单用于 Framework 修复。其他模板保持不变,将直接用于修复。
|
||||
|
||||
**重要说明:**
|
||||
|
||||
- 特定的 Framework 模板必须遵循命名规范`FrameworkName.xcprivacy`,其中`FrameworkName`需与 Framework 的名称匹配。例如`Flutter.framework`的模板应命名为`Flutter.xcprivacy`。
|
||||
- 对于 macOS Framework,应遵循命名规范`FrameworkName.Version.xcprivacy`,额外增加版本名称用于区分不同的版本。对于单一版本的 macOS Framework,`Version`通常为`A`。
|
||||
- SDK 的名称可能与 Framework 的名称不完全一致。要确定正确的 Framework 名称,请在构建项目后检查 App 包中的`Frameworks`目录。
|
||||
@@ -229,7 +236,7 @@ sh Report/report.sh <app_path> <report_output_path>
|
||||
|------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
|
||||
|  |  |
|
||||
|
||||
## 💡 重要考量
|
||||
## 💡 重要考量
|
||||
|
||||
- 如果最新版本的 SDK 支持隐私清单,请尽可能升级,以避免不必要的风险。
|
||||
- 此工具仅为临时解决方案,不应替代正确的 SDK 管理实践。
|
||||
|
||||
Reference in New Issue
Block a user