|
7 | 7 | /// alignment of files, dependencies, and frameworks across grouped targets. |
8 | 8 | /// - ForbiddenResourcesProcessor validates `forbiddenResourceSets` to ensure no disallowed resource paths exist. |
9 | 9 | /// - XcodeProjectParser consults `duplicatesValidationExcludedTargets` to skip duplicate checks for specified targets. |
| 10 | +/// |
| 11 | +/// Example JSON (full): |
| 12 | +/// ```json |
| 13 | +/// { |
| 14 | +/// "name": "MyProject", |
| 15 | +/// "fileMembershipSets": [ |
| 16 | +/// { |
| 17 | +/// "targets": ["App", "AppStaging", "AppProd"], |
| 18 | +/// "exclusive": { |
| 19 | +/// "AppStaging": { |
| 20 | +/// "files": ["Config/Staging/*", "Features/DebugPanel/"], |
| 21 | +/// "dependencies": ["StagingAnalytics"], |
| 22 | +/// "frameworks": ["StagingSDK"] |
| 23 | +/// }, |
| 24 | +/// "AppProd": { |
| 25 | +/// "files": ["Config/Prod/*"], |
| 26 | +/// "dependencies": ["ProdAnalytics"], |
| 27 | +/// "frameworks": ["ProdSDK"] |
| 28 | +/// } |
| 29 | +/// } |
| 30 | +/// }, |
| 31 | +/// { |
| 32 | +/// "targets": ["Widget", "WidgetExtension"], |
| 33 | +/// "exclusive": { |
| 34 | +/// "WidgetExtension": { |
| 35 | +/// "files": ["WidgetExtensionSpecific/*"], |
| 36 | +/// "dependencies": ["WidgetExtensionSupport"], |
| 37 | +/// "frameworks": [] |
| 38 | +/// } |
| 39 | +/// } |
| 40 | +/// } |
| 41 | +/// ], |
| 42 | +/// "forbiddenResourceSets": [ |
| 43 | +/// { |
| 44 | +/// "targets": ["App", "AppStaging", "AppProd"], |
| 45 | +/// "paths": ["/Debug/", "Temporary/"] |
| 46 | +/// }, |
| 47 | +/// { |
| 48 | +/// "targets": ["Widget"], |
| 49 | +/// "paths": ["LargeAssets/"] |
| 50 | +/// } |
| 51 | +/// ], |
| 52 | +/// "duplicatesValidationExcludedTargets": ["Tests", "UITests"] |
| 53 | +/// } |
| 54 | +/// ``` |
| 55 | +/// |
| 56 | +/// Minimal JSON (only required keys): |
| 57 | +/// ```json |
| 58 | +/// { |
| 59 | +/// "name": "MyProject", |
| 60 | +/// "fileMembershipSets": [ |
| 61 | +/// { "targets": ["App"] } |
| 62 | +/// ] |
| 63 | +/// } |
| 64 | +/// ``` |
10 | 65 | struct Configuration: Codable, Equatable { |
11 | 66 | /// Logical name of the Xcode project (without the `.xcodeproj` extension). |
12 | 67 | /// Used to construct the project path. |
|
0 commit comments