diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..4157440bf2
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+CHANGELOG.md merge=union
\ No newline at end of file
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 0e7f66d918..97184c5c62 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,8 +1,8 @@
# Global code owners - RUM Mobile Team
-* @DataDog/rum-mobile
+* @DataDog/rum-mobile @DataDog/rum-mobile-ios
## Docs
-/docs/ @DataDog/documentation @DataDog/rum-mobile
-*README.md @DataDog/documentation @DataDog/rum-mobile
\ No newline at end of file
+/docs/ @DataDog/documentation @DataDog/rum-mobile
+*README.md @DataDog/documentation @DataDog/rum-mobile
diff --git a/.github/ISSUE_TEMPLATE/BugReport.yml b/.github/ISSUE_TEMPLATE/BugReport.yml
new file mode 100644
index 0000000000..c03c6f1a6d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/BugReport.yml
@@ -0,0 +1,111 @@
+name: Bug Report
+description: Is the SDK not working as expected? Help us improve by submitting a bug report.
+labels: ["bug"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Ensure you go through our [troubleshooting](https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/troubleshooting/#debugging-1) page before creating a new issue.
+ Before getting started, if the problem is urgent or easier to investigate with access to your organization's data please use our [official support channel](https://www.datadoghq.com/support/).
+ - type: textarea
+ id: description
+ attributes:
+ label: Describe the bug
+ description: Provide a clear and concise description of what the bug is.
+ validations:
+ required: true
+ - type: textarea
+ id: reproduction
+ attributes:
+ label: Reproduction steps
+ description: |
+ Provide a self-contained piece of code demonstrating the bug.
+ For a more complex setup consider creating a small app that showcases the problem.
+ **Note** - Avoid sharing any business logic, credentials or tokens.
+ validations:
+ required: true
+ - type: textarea
+ id: logs
+ attributes:
+ label: SDK logs
+ description: |
+ Please provide console logs before, during and after the bug occurs.
+ validations:
+ required: false
+ - type: textarea
+ id: expected_behavior
+ attributes:
+ label: Expected behavior
+ description: Provide a clear and concise description of what you expected the SDK to do.
+ validations:
+ required: false
+ - type: input
+ id: affected_sdk_versions
+ attributes:
+ label: Affected SDK versions
+ description: What are the SDK versions you're seeing this bug in?
+ validations:
+ required: true
+ - type: input
+ id: last_working_sdk_version
+ attributes:
+ label: Latest working SDK version
+ description: What was the last SDK version that was working as expected?
+ validations:
+ required: true
+ - type: dropdown
+ id: checked_lastest_sdk
+ attributes:
+ label: Did you confirm if the latest SDK version fixes the bug?
+ options:
+ - 'Yes'
+ - 'No'
+ validations:
+ required: true
+ - type: dropdown
+ id: integration_method
+ attributes:
+ label: Integration Methods
+ options:
+ - SPM
+ - Cocoapods
+ - Carthage
+ - XCFramework
+ - Source
+ validations:
+ required: true
+ - type: input
+ id: xcode_version
+ attributes:
+ label: Xcode Version
+ description: e.g. Xcode 11.5 (15C500b), obtained with **xcodebuild -version**
+ - type: input
+ id: swift_version
+ attributes:
+ label: Swift Version
+ description: e.g. Swift 5.9 , obtained with **swift —version**
+ - type: input
+ id: mac_version
+ attributes:
+ label: MacOS Version
+ description: e.g. macOS Catalina 10.15.5 (19F96), obtained with **sw_vers**
+ - type: input
+ id: deployment_targe
+ attributes:
+ label: Deployment Target
+ description: |
+ What is the Deployment Target of your app? e.g. *iOS 12*, *iPhone* + *iPad*
+ - type: textarea
+ id: device_info
+ attributes:
+ label: Device Information
+ description: |
+ What are the common characteristics of devices you're seeing this bug in.
+ Specific models, OS versions, network state (wifi / cellular / offline), power state (plugged in / battery), etc.
+ - type: textarea
+ id: other_info
+ attributes:
+ label: Other relevant information
+ description: |
+ Other relevant information such as additional tooling in place, proxies, etc.
+ Anything that might be relevant for troubleshooting this bug.
diff --git a/.github/ISSUE_TEMPLATE/CrashReport.yml b/.github/ISSUE_TEMPLATE/CrashReport.yml
new file mode 100644
index 0000000000..74204d28b5
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/CrashReport.yml
@@ -0,0 +1,76 @@
+name: Crash Report
+description: Report crashes caused by the SDK.
+labels: ["crash"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Report crashes caused by the SDK. Please try to be as detailed as possible.
+ Before getting started, if the problem is urgent please use our [official support channel](https://www.datadoghq.com/support/).
+ - type: textarea
+ id: stacktrace
+ attributes:
+ label: Stack trace
+ description: Please provide us with the stack trace of the crash or a crash report.
+ validations:
+ required: true
+ - type: textarea
+ id: reproduction
+ attributes:
+ label: Reproduction steps
+ description: |
+ Provide a self-contained piece of code demonstrating the crash if you can.
+ For a more complex setup consider creating a small app that showcases the problem.
+ **Note** - Avoid sharing any business logic, credentials or tokens.
+ validations:
+ required: false
+ - type: input
+ id: volume
+ attributes:
+ label: Volume
+ description: What percentage of your app sessions are impacted with this crash?
+ validations:
+ required: true
+ - type: input
+ id: affected_sdk_versions
+ attributes:
+ label: Affected SDK versions
+ description: What are the SDK versions you're seeing this crash in?
+ validations:
+ required: true
+ - type: input
+ id: last_working_sdk_version
+ attributes:
+ label: Latest working SDK version
+ description: If you know, what was the last SDK version where the crash did manifest itself?
+ validations:
+ required: true
+ - type: dropdown
+ id: checked_lastest_sdk
+ attributes:
+ label: Does the crash manifest in the latest SDK version?
+ options:
+ - 'Yes'
+ - 'No'
+ validations:
+ required: true
+ - type: input
+ id: deployment_targe
+ attributes:
+ label: Deployment Target
+ description: |
+ What is the Deployment Target of your app? e.g. *iOS 12*, *iPhone* + *iPad*
+ - type: textarea
+ id: device_info
+ attributes:
+ label: Device Information
+ description: |
+ What are the common characteristics of devices you're seeing this crash in?
+ Specific models, OS versions, etc.
+ validations:
+ required: false
+ - type: textarea
+ id: other_info
+ attributes:
+ label: Other relevant information
+ description: Anything that might be relevant to pinpoint the source of the crash.
diff --git a/.github/ISSUE_TEMPLATE/FeatureRequest.yml b/.github/ISSUE_TEMPLATE/FeatureRequest.yml
new file mode 100644
index 0000000000..7e7324be4f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/FeatureRequest.yml
@@ -0,0 +1,32 @@
+name: Feature Request
+description: Have an idea or need a new feature? Request it here.
+labels: ["feature"]
+body:
+ - type: textarea
+ id: description
+ attributes:
+ label: Feature description
+ description: |
+ Provide a description for the feature request. Please include:
+ 1. Use case
+ 2. How the SDK currently delivers (or doesn't)
+ 3. What would you like to see
+ validations:
+ required: true
+ - type: textarea
+ id: proposed_solution
+ attributes:
+ label: Proposed solution
+ description: |
+ How would you implement this?
+ Propose an idea, solution or reference implementation.
+ validations:
+ required: false
+ - type: textarea
+ id: other_info
+ attributes:
+ label: Other relevant information
+ description: Any other relevant information you'd like we take into consideration.
+ validations:
+ required: false
+
diff --git a/.github/ISSUE_TEMPLATE/Question.yml b/.github/ISSUE_TEMPLATE/Question.yml
new file mode 100644
index 0000000000..0f286a3568
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Question.yml
@@ -0,0 +1,10 @@
+name: Question
+description: Do you just have a question about the SDK or a product? Ask here.
+labels: ["question"]
+body:
+ - type: textarea
+ id: question
+ attributes:
+ label: Question
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/SetupIssue.yml b/.github/ISSUE_TEMPLATE/SetupIssue.yml
new file mode 100644
index 0000000000..4812eeb0a8
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/SetupIssue.yml
@@ -0,0 +1,81 @@
+name: Setup Issue
+description: Having a hard time setting up the SDK for the first time? Maybe a compilation issue or just nothing seems to be happening. Seek help with this.
+labels: ["compilation issue"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Before creating an issue, please ensure you go through the [troubleshooting page](https://docs.datadoghq.com/real_user_monitoring/mobile_and_tv_monitoring/troubleshooting/#debugging-1).
+ - type: textarea
+ id: issue
+ attributes:
+ label: Describe the issue
+ description: Provide a clear and concise description of the issue. Include compilation logs and SDK debug logs if relevant.
+ validations:
+ required: true
+ - type: textarea
+ id: reproduction
+ attributes:
+ label: Reproduction steps
+ description: |
+ Provide a self-contained piece of code demonstrating the issue.
+ For a more complex setup consider creating a small app that showcases the problem.
+ **Note** - Avoid sharing any business logic, credentials or tokens.
+ validations:
+ required: true
+ - type: textarea
+ id: device_info
+ attributes:
+ label: Device Information
+ description: |
+ What are the common characteristics of devices you're seeing this issue in?
+ Simulators, specific models, OS versions, network state (wifi / cellular / offline), power state (plugged in / battery), etc.
+ validations:
+ required: false
+ - type: input
+ id: sdk_version
+ attributes:
+ label: SDK version
+ description: Which SDK version are you trying to use?
+ validations:
+ required: true
+ - type: dropdown
+ id: integration_method
+ attributes:
+ label: Integration Methods
+ options:
+ - SPM
+ - Cocoapods
+ - Carthage
+ - XCFramework
+ - Source
+ validations:
+ required: true
+ - type: input
+ id: xcode_version
+ attributes:
+ label: Xcode Version
+ description: e.g. Xcode 11.5 (15C500b), obtained with **xcodebuild -version**
+ - type: input
+ id: swift_version
+ attributes:
+ label: Swift Version
+ description: e.g. Swift 5.9 , obtained with **swift —version**
+ - type: input
+ id: mac_version
+ attributes:
+ label: MacOS Version
+ description: e.g. macOS Catalina 10.15.5 (19F96), obtained with **sw_vers**
+ - type: input
+ id: deployment_targe
+ attributes:
+ label: Deployment Target
+ description: |
+ What is the Deployment Target of your app? e.g. *iOS 12*, *iPhone* + *iPad*
+ - type: textarea
+ id: other_info
+ attributes:
+ label: Other relevant information
+ description: |
+ Other relevant information such as additional tooling in place, proxies, etc.
+ Anything that might be relevant for troubleshooting your setup.
diff --git a/.github/ISSUE_TEMPLATE/compilation_issue.md b/.github/ISSUE_TEMPLATE/compilation_issue.md
deleted file mode 100644
index 840e566a2b..0000000000
--- a/.github/ISSUE_TEMPLATE/compilation_issue.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-name: Compilation Issue
-about: Having a Cocoapods / Carthage / SPM problem when linking the SDK?
-title: ''
-labels: compilation issue
-assignees: ''
-
----
-
-### The issue
-
-📝 Give us the error message you receive, describe the problem and answer the questions.
-
----
-
-#### Datadog SDK version:
-
-_Which version of the Datadog SDK causes this problem? e.g. `1.2.0`_
-
-#### Last working Datadog SDK version:
-
-_What is the last Datadog SDK version where this problem didn't occur? e.g. `1.1.0`_
-
-#### Dependency Manager:
-
-_Which dependency manager do you use? e.g. Cocoapods / Carthage / SPM / ..._
-
-#### Other toolset:
-
-_Do you use additional tools with your dependency manager? e.g. [CarthageCache](https://github.com/Wolox/carthage_cache)_
-
-#### Xcode version:
-
-_e.g. `Xcode 11.5 (11E608c)`_
-
-#### Swift version:
-
-_e.g. `5.1`_
-
-#### Deployment Target:
-
-_What is the Deployment Target of your app? e.g. `iOS 12`, `iPhone` + `iPad`_
-
-#### macOS version:
-
-_e.g. `macOS Catalina 10.15.5 (19F96)`_
diff --git a/.github/ISSUE_TEMPLATE/crash_report.md b/.github/ISSUE_TEMPLATE/crash_report.md
deleted file mode 100644
index f32d11f9a0..0000000000
--- a/.github/ISSUE_TEMPLATE/crash_report.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-name: Crash
-about: Noticed the SDK crash?
-title: ''
-labels: crash
-assignees: ''
-
----
-
-### The crash
-
-📝 Give us the crash report or stack trace, describe the problem in details and answer the questions.
-
----
-
-#### Datadog SDK versions:
-
-_Which version(s) of the Datadog SDK you see this crash happening in?_
-
-#### Last stable Datadog SDK version:
-
-_What is the last Datadog SDK version where this crash doesn't happen?_
-
-#### Volume:
-
-_What % of your app sessions is impacted with this crash?_
-
-#### OS version:
-
-_Which iOS versions does this crash happen on?_
-
-#### Deployment Target:
-
-_What is the Deployment Target of your app? e.g. `iOS 12`, `iPhone` + `iPad`_
-
-#### Device version:
-
-_Which devices does this crash happen on? e.g. `iPhone X` only or various iPads_
-
-#### Environment:
-
-_Do you notice any environment correlation in crash reports? e.g. low battery, no internet connection, memory pressure_
diff --git a/.github/ISSUE_TEMPLATE/other.md b/.github/ISSUE_TEMPLATE/other.md
deleted file mode 100644
index 951afbf02c..0000000000
--- a/.github/ISSUE_TEMPLATE/other.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-name: Other
-about: Noticed a bug, having a question or a feature request?
-title: ''
-assignees: ''
-
----
-
-### The thing
-
-Tell us the thing 🙂
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 046e8937a3..87ddc2ff9c 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -7,6 +7,7 @@ A short description of what changes this PR introduces and why.
A brief description of implementation details of this PR.
### Review checklist
-
- [ ] Feature or bugfix MUST have appropriate tests (unit, integration)
-- [ ] Make sure each commit and the PR mention the Issue number or JIRA reference
+- [ ] Make sure each commit and the PR mention the Issue number or JIRA reference
+- [ ] Add CHANGELOG entry for user facing changes
+- [ ] Add Objective-C interface for public APIs (see our [guidelines](https://datadoghq.atlassian.net/wiki/spaces/RUMP/pages/3157787243/RFC+-+Modular+Objective-C+Interface#Recommended-solution) (internal) and run `make api-surface`)
diff --git a/.gitignore b/.gitignore
index 0ecf54e6db..896abc144a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,25 @@
.DS_Store
/build
-/.build
-/.swiftpm
-xcuserdata/
+.build
+.swiftpm
+Package.resolved
+Carthage/Build
+Carthage/Checkouts
+xcuserdata/
*.local.xcconfig
+E2ETests/code-signing
+tools/dogfooding/repos
+
+# Ignore files for Python tools:
+.idea
+venv
+*.pyc
+__pycache__
+*.swp
+.venv
+.vscode
+*.pytest_cache
+
+# CI job artifacts
+artifacts/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000..65695b293f
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,397 @@
+stages:
+ - pre
+ - lint
+ - test
+ - ui-test
+ - smoke-test
+ - e2e-test
+ - benchmark-test
+ - dogfood
+ - release-build
+ - release-publish
+ - post
+
+variables:
+ MAIN_BRANCH: "master"
+ DEVELOP_BRANCH: "develop"
+ # Default Xcode and runtime versions for all jobs:
+ DEFAULT_XCODE: "16.2.0"
+ DEFAULT_IOS_OS: "18.3.1"
+ DEFAULT_TVOS_OS: "18.2"
+ # Prefilled variables for running a pipeline manually:
+ # Ref.: https://docs.gitlab.com/ee/ci/pipelines/index.html#prefill-variables-in-manual-pipelines
+ RELEASE_GIT_TAG:
+ description: "The Git tag for the release pipeline. If set, release pipeline will be triggered for the given tag."
+ RELEASE_DRY_RUN:
+ value: "1"
+ description: "Controls the dry run mode for the release pipeline. If set to '1', the pipeline will execute all steps but will not publish artifacts. If set to '0', the pipeline will run fully."
+
+default:
+ tags:
+ - macos:sonoma
+ - specific:true
+
+# ┌───────────────┐
+# │ Utility jobs: │
+# └───────────────┘
+
+# Utility jobs define rules for including or excluding dependent jobs from the pipeline.
+#
+# Ref.: https://docs.gitlab.com/ee/ci/jobs/job_rules.html
+# > Rules are evaluated in order until the first match. When a match is found, the job is either included or excluded
+# > from the pipeline, depending on the configuration.
+
+.test-pipeline-job:
+ rules:
+ - if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH || $CI_COMMIT_BRANCH == $MAIN_BRANCH' # always on main branches
+ - if: '$CI_COMMIT_BRANCH' # when on other branch with following changes compared to develop
+ changes:
+ paths:
+ - "Datadog*/**/*"
+ - "IntegrationTests/**/*"
+ - "SmokeTests/**/*"
+ - "TestUtilities/**/*"
+ - "*" # match any file in the root directory
+ compare_to: 'develop' # cannot use $DEVELOP_BRANCH var due to: https://gitlab.com/gitlab-org/gitlab/-/issues/369916
+
+.benchmark-pipeline-job:
+ rules:
+ - if: '$CI_COMMIT_BRANCH' # when on branch with following changes compared to develop
+ changes:
+ paths:
+ - "BenchmarkTests/**/*"
+ compare_to: 'develop' # cannot use $DEVELOP_BRANCH var due to: https://gitlab.com/gitlab-org/gitlab/-/issues/369916
+
+.release-pipeline-job:
+ rules:
+ - if: '$CI_COMMIT_TAG || $RELEASE_GIT_TAG'
+
+.release-pipeline-20m-delayed-job:
+ rules:
+ - if: '$CI_COMMIT_TAG || $RELEASE_GIT_TAG'
+ when: delayed
+ start_in: 20 minutes
+
+.release-pipeline-40m-delayed-job:
+ rules:
+ - if: '$CI_COMMIT_TAG || $RELEASE_GIT_TAG'
+ when: delayed
+ start_in: 40 minutes
+
+ENV check:
+ stage: pre
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ script:
+ - ./tools/runner-setup.sh --datadog-ci
+ - make env-check
+
+# ┌──────────────────────────┐
+# │ SDK changes integration: │
+# └──────────────────────────┘
+
+Lint:
+ stage: lint
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.benchmark-pipeline-job, rules]
+ script:
+ - make clean repo-setup ENV=ci
+ - make lint license-check
+ - make rum-models-verify sr-models-verify
+
+Unit Tests (iOS):
+ stage: test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ variables:
+ PLATFORM: "iOS Simulator"
+ DEVICE: "iPhone 16 Pro"
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make clean repo-setup ENV=ci
+ - make test-ios-all OS="$DEFAULT_IOS_OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE" USE_TEST_VISIBILITY=1
+
+Unit Tests (tvOS):
+ stage: test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ variables:
+ PLATFORM: "tvOS Simulator"
+ DEVICE: "Apple TV"
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make clean repo-setup ENV=ci
+ - make test-tvos-all OS="$DEFAULT_TVOS_OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE" USE_TEST_VISIBILITY=1
+
+UI Tests:
+ stage: ui-test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ variables:
+ PLATFORM: "iOS Simulator"
+ DEVICE: "iPhone 16 Pro"
+ parallel:
+ matrix:
+ - TEST_PLAN:
+ - Default
+ - RUM
+ - CrashReporting
+ - NetworkInstrumentation
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make clean repo-setup ENV=ci
+ - make ui-test TEST_PLAN="$TEST_PLAN" OS="$DEFAULT_IOS_OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"
+
+SR Snapshot Tests:
+ stage: ui-test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ variables:
+ PLATFORM: "iOS Simulator"
+ IOS_OS: "17.5"
+ DEVICE: "iPhone 15"
+ ARTIFACTS_PATH: "artifacts"
+ artifacts:
+ paths:
+ - artifacts
+ expire_in: 1 week
+ when: on_failure
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --ssh
+ - make clean repo-setup ENV=ci
+ - make sr-snapshots-pull sr-snapshot-test OS="$IOS_OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE" ARTIFACTS_PATH="$ARTIFACTS_PATH"
+
+Tools Tests:
+ stage: test
+ rules:
+ - if: '$CI_COMMIT_BRANCH' # when on branch with following changes compared to develop
+ changes:
+ paths:
+ - "tools/**/*"
+ - "Makefile"
+ - ".gitlab-ci.yml"
+ compare_to: 'develop'
+ script:
+ - make clean repo-setup ENV=ci
+ - make tools-test
+
+Benchmark Build:
+ stage: smoke-test
+ rules:
+ - !reference [.benchmark-pipeline-job, rules]
+ script:
+ - make benchmark-build
+
+Smoke Tests (iOS):
+ stage: smoke-test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ variables:
+ PLATFORM: "iOS Simulator"
+ DEVICE: "iPhone 16 Pro"
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --ssh
+ - make clean repo-setup ENV=ci
+ - make smoke-test-ios-all OS="$DEFAULT_IOS_OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"
+
+Smoke Tests (tvOS):
+ stage: smoke-test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ variables:
+ PLATFORM: "tvOS Simulator"
+ DEVICE: "Apple TV"
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --ssh
+ - make clean repo-setup ENV=ci
+ - make smoke-test-tvos-all OS="$DEFAULT_TVOS_OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"
+
+SPM Build (Swift 5.10):
+ stage: smoke-test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --iOS --tvOS --visionOS --watchOS
+ - make clean repo-setup ENV=ci
+ - make spm-build-ios
+ - make spm-build-tvos
+ - make spm-build-visionos
+ - make spm-build-macos
+ - make spm-build-watchos
+
+SPM Build (Swift 5.9):
+ stage: smoke-test
+ rules:
+ - !reference [.test-pipeline-job, rules]
+ - !reference [.release-pipeline-job, rules]
+ tags:
+ - macos:ventura
+ - specific:true
+ variables:
+ XCODE: "15.2.0"
+ script:
+ - ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --visionOS --watchOS
+ - make clean repo-setup ENV=ci
+ - make spm-build-ios
+ - make spm-build-tvos
+ - make spm-build-visionos
+ - make spm-build-macos
+ - make spm-build-watchos
+
+# ┌──────────────────────┐
+# │ E2E Test app upload: │
+# └──────────────────────┘
+
+E2E Test (upload to s8s):
+ stage: e2e-test
+ rules:
+ - if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
+ artifacts:
+ paths:
+ - artifacts
+ expire_in: 2 weeks
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --datadog-ci
+ - make clean
+ - export DRY_RUN=${DRY_RUN:-0} # default to 0 if not specified
+ - make e2e-upload ARTIFACTS_PATH="artifacts/e2e"
+
+# ┌────────────────────────────┐
+# │ Benchmark Test app upload: │
+# └────────────────────────────┘
+
+Benchmark Test (upload to s8s):
+ stage: benchmark-test
+ rules:
+ - if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
+ allow_failure: true
+ artifacts:
+ paths:
+ - artifacts
+ expire_in: 2 weeks
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --datadog-ci
+ - make clean
+ - export DRY_RUN=${DRY_RUN:-0} # default to 0 if not specified
+ - make benchmark-upload ARTIFACTS_PATH="artifacts/benchmark"
+
+# ┌─────────────────┐
+# │ SDK dogfooding: │
+# └─────────────────┘
+
+Dogfood (Shopist):
+ stage: dogfood
+ rules:
+ - if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
+ when: manual
+ allow_failure: true
+ script:
+ - ./tools/runner-setup.sh --ssh
+ - DRY_RUN=0 make dogfood-shopist
+
+Dogfood (Datadog app):
+ stage: dogfood
+ rules:
+ - if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
+ when: manual
+ allow_failure: true
+ script:
+ - ./tools/runner-setup.sh --ssh
+ - DRY_RUN=0 make dogfood-datadog-app
+
+# ┌──────────────┐
+# │ SDK release: │
+# └──────────────┘
+
+.release-before-script: &export_MAKE_release_params
+ - export GIT_TAG=${RELEASE_GIT_TAG:-$CI_COMMIT_TAG} # CI_COMMIT_TAG if set, otherwise default to RELEASE_GIT_TAG
+ - if [ -z "$GIT_TAG" ]; then echo "GIT_TAG is not set"; exit 1; fi # sanity check
+ - export ARTIFACTS_PATH="artifacts/$GIT_TAG"
+ - export DRY_RUN=${CI_COMMIT_TAG:+0} # 0 if CI_COMMIT_TAG is set
+ - export DRY_RUN=${DRY_RUN:-$RELEASE_DRY_RUN} # otherwise default to RELEASE_DRY_RUN
+
+Build Artifacts:
+ stage: release-build
+ rules:
+ - !reference [.release-pipeline-job, rules]
+ artifacts:
+ paths:
+ - artifacts
+ expire_in: 4 weeks
+ before_script:
+ - *export_MAKE_release_params
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE" --ssh
+ - make env-check
+ - make clean
+ - make release-build release-validate
+
+Publish GH Asset:
+ stage: release-publish
+ rules:
+ - !reference [.release-pipeline-job, rules]
+ before_script:
+ - *export_MAKE_release_params
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make env-check
+ - make clean
+ - make release-publish-github
+
+Publish CP podspecs (internal):
+ stage: release-publish
+ rules:
+ - !reference [.release-pipeline-job, rules]
+ before_script:
+ - *export_MAKE_release_params
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make env-check
+ - make clean
+ - make release-publish-internal-podspecs
+
+Publish CP podspecs (dependent):
+ stage: release-publish
+ rules:
+ - !reference [.release-pipeline-20m-delayed-job, rules]
+ before_script:
+ - *export_MAKE_release_params
+ needs: ["Build Artifacts", "Publish CP podspecs (internal)"]
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make env-check
+ - make clean
+ - make release-publish-dependent-podspecs
+
+Publish CP podspecs (legacy):
+ stage: release-publish
+ rules:
+ - !reference [.release-pipeline-40m-delayed-job, rules]
+ before_script:
+ - *export_MAKE_release_params
+ needs: ["Build Artifacts", "Publish CP podspecs (dependent)"]
+ script:
+ - ./tools/runner-setup.sh --xcode "$DEFAULT_XCODE"
+ - make env-check
+ - make clean
+ - make release-publish-legacy-podspecs
+
+# ┌────────────────┐
+# │ Notifications: │
+# └────────────────┘
+
+# This job runs at the end of every successful pipeline.
+# It syncs the GitLab pipeline status with GitHub status checks.
+Sync GH Checks:
+ stage: post
+ script:
+ - echo "All good"
diff --git a/.spi.yml b/.spi.yml
new file mode 100644
index 0000000000..5d317a7c02
--- /dev/null
+++ b/.spi.yml
@@ -0,0 +1,5 @@
+version: 1
+builder:
+ configs:
+ - platform: ios
+ documentation_targets: ["DatadogInternal", "DatadogCore", "DatadogObjc", "DatadogLogs", "DatadogTrace", "DatadogRUM", "DatadogSessionReplay", "DatadogCrashReporting", "DatadogWebViewTracking"]
diff --git a/BenchmarkTests/BenchmarkTests.xcodeproj/.xcodesamplecode.plist b/BenchmarkTests/BenchmarkTests.xcodeproj/.xcodesamplecode.plist
new file mode 100644
index 0000000000..4bc741ca64
--- /dev/null
+++ b/BenchmarkTests/BenchmarkTests.xcodeproj/.xcodesamplecode.plist
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/BenchmarkTests/BenchmarkTests.xcodeproj/project.pbxproj b/BenchmarkTests/BenchmarkTests.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..45aa66bc1c
--- /dev/null
+++ b/BenchmarkTests/BenchmarkTests.xcodeproj/project.pbxproj
@@ -0,0 +1,2358 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 56;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 86252B1B2D818E360098FAEF /* TraceScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86252B1A2D818E360098FAEF /* TraceScenario.swift */; };
+ 86252B1D2D8190DA0098FAEF /* TraceContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86252B1C2D8190DA0098FAEF /* TraceContentView.swift */; };
+ 8649177D2D8875C300761363 /* RUMManualContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8649177C2D8875C300761363 /* RUMManualContentView.swift */; };
+ 8649177F2D8875D100761363 /* RUMManualScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8649177E2D8875D100761363 /* RUMManualScenario.swift */; };
+ 868DA2E62D706456007D20D5 /* LogsCustomScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868DA2E52D706456007D20D5 /* LogsCustomScenario.swift */; };
+ 868DA2EC2D706E61007D20D5 /* LogsCustomContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868DA2EB2D706E61007D20D5 /* LogsCustomContentView.swift */; };
+ 868DA2F52D71DD47007D20D5 /* LogsHeavyTrafficScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868DA2F42D71DD47007D20D5 /* LogsHeavyTrafficScenario.swift */; };
+ 868DA2F72D71DD8A007D20D5 /* LogsHeavyTrafficContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868DA2F62D71DD8A007D20D5 /* LogsHeavyTrafficContentView.swift */; };
+ 868DA2F92D71E622007D20D5 /* LogsUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868DA2F82D71E622007D20D5 /* LogsUtils.swift */; };
+ D231DC372C73355800F3F66C /* CatalogUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D231DC312C73355800F3F66C /* CatalogUIKit.framework */; };
+ D231DC382C73355800F3F66C /* CatalogUIKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D231DC312C73355800F3F66C /* CatalogUIKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 86FA742B2D89C49400F69130 /* RUMAutoScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA742A2D89C49400F69130 /* RUMAutoScenario.swift */; };
+ 86FA742D2D89C4B800F69130 /* RUMAutoContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA742C2D89C4B800F69130 /* RUMAutoContentView.swift */; };
+ 86FA742F2D89CBF100F69130 /* CharactersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA742E2D89CBF100F69130 /* CharactersView.swift */; };
+ 86FA74312D89CC0400F69130 /* LocationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA74302D89CC0400F69130 /* LocationsView.swift */; };
+ 86FA74332D89CC1500F69130 /* EpisodesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA74322D89CC1500F69130 /* EpisodesView.swift */; };
+ 86FA74352D89CC2400F69130 /* DocsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA74342D89CC2400F69130 /* DocsView.swift */; };
+ 86FA74392D8AC2C700F69130 /* RickMortyService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA74382D8AC2C700F69130 /* RickMortyService.swift */; };
+ 86FA743B2D8AC3C900F69130 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA743A2D8AC3C900F69130 /* Utils.swift */; };
+ 86FA743D2D8AD6AE00F69130 /* LocationsView.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 86FA743C2D8AD6AE00F69130 /* LocationsView.storyboard */; };
+ 86FA743F2D8AE85B00F69130 /* LocationsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA743E2D8AE85B00F69130 /* LocationsViewController.swift */; };
+ 86FA74412D8AF38F00F69130 /* LocationDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA74402D8AF38F00F69130 /* LocationDetailViewController.swift */; };
+ 86FA74472D8B128C00F69130 /* CharacterCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FA74462D8B128C00F69130 /* CharacterCollectionViewCell.swift */; };
+ 86FBEDC42D8C273C005CFCC4 /* CharacterModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDC02D8C273C005CFCC4 /* CharacterModels.swift */; };
+ 86FBEDC52D8C273C005CFCC4 /* EpisodeModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDC22D8C273C005CFCC4 /* EpisodeModels.swift */; };
+ 86FBEDC62D8C273C005CFCC4 /* LocationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDC32D8C273C005CFCC4 /* LocationModels.swift */; };
+ 86FBEDC72D8C273C005CFCC4 /* CommonTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDC12D8C273C005CFCC4 /* CommonTypes.swift */; };
+ 86FBEDCC2D8C29C3005CFCC4 /* CharacterListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDC92D8C29C3005CFCC4 /* CharacterListItem.swift */; };
+ 86FBEDCD2D8C29C3005CFCC4 /* StatusBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDCB2D8C29C3005CFCC4 /* StatusBadge.swift */; };
+ 86FBEDCE2D8C29C3005CFCC4 /* CharacterDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDC82D8C29C3005CFCC4 /* CharacterDetailView.swift */; };
+ 86FBEDCF2D8C29C3005CFCC4 /* InfoRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDCA2D8C29C3005CFCC4 /* InfoRow.swift */; };
+ 86FBEDD12D8C2B04005CFCC4 /* LocationCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDD02D8C2B04005CFCC4 /* LocationCollectionViewCell.swift */; };
+ 86FBEDD32D8C4348005CFCC4 /* EpisodeListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDD22D8C4348005CFCC4 /* EpisodeListItem.swift */; };
+ 86FBEDD52D8C436D005CFCC4 /* EpisodeDetailHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDD42D8C436D005CFCC4 /* EpisodeDetailHostingController.swift */; };
+ 86FBEDDC2D8C491E005CFCC4 /* EpisodeDetailView.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 86FBEDDA2D8C491E005CFCC4 /* EpisodeDetailView.storyboard */; };
+ 86FBEDDD2D8C491E005CFCC4 /* EpisodeDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86FBEDDB2D8C491E005CFCC4 /* EpisodeDetailViewController.swift */; };
+ D231DCAF2C73356E00F3F66C /* ActivityIndicatorViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC412C73356D00F3F66C /* ActivityIndicatorViewController.storyboard */; };
+ D231DCB02C73356E00F3F66C /* ActivityIndicatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC422C73356D00F3F66C /* ActivityIndicatorViewController.swift */; };
+ D231DCB12C73356E00F3F66C /* AlertControllerViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC442C73356D00F3F66C /* AlertControllerViewController.storyboard */; };
+ D231DCB22C73356E00F3F66C /* AlertControllerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC452C73356D00F3F66C /* AlertControllerViewController.swift */; };
+ D231DCB42C73356E00F3F66C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D231DC472C73356D00F3F66C /* Assets.xcassets */; };
+ D231DCB52C73356E00F3F66C /* BaseTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC482C73356D00F3F66C /* BaseTableViewController.swift */; };
+ D231DCB62C73356E00F3F66C /* ButtonViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC4A2C73356D00F3F66C /* ButtonViewController.storyboard */; };
+ D231DCB72C73356E00F3F66C /* ButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC4B2C73356D00F3F66C /* ButtonViewController.swift */; };
+ D231DCB82C73356E00F3F66C /* ButtonViewController+Configs.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC4C2C73356D00F3F66C /* ButtonViewController+Configs.swift */; };
+ D231DCB92C73356E00F3F66C /* CaseElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC4D2C73356D00F3F66C /* CaseElement.swift */; };
+ D231DCBA2C73356E00F3F66C /* ColorPickerViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC4F2C73356D00F3F66C /* ColorPickerViewController.storyboard */; };
+ D231DCBB2C73356E00F3F66C /* ColorPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC502C73356D00F3F66C /* ColorPickerViewController.swift */; };
+ D231DCBC2C73356E00F3F66C /* content.html in Resources */ = {isa = PBXBuildFile; fileRef = D231DC522C73356D00F3F66C /* content.html */; };
+ D231DCBD2C73356E00F3F66C /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = D231DC542C73356D00F3F66C /* Credits.rtf */; };
+ D231DCBE2C73356E00F3F66C /* CustomPageControlViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC562C73356D00F3F66C /* CustomPageControlViewController.storyboard */; };
+ D231DCBF2C73356E00F3F66C /* CustomPageControlViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC572C73356D00F3F66C /* CustomPageControlViewController.swift */; };
+ D231DCC02C73356E00F3F66C /* CustomSearchBarViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC592C73356D00F3F66C /* CustomSearchBarViewController.storyboard */; };
+ D231DCC12C73356E00F3F66C /* CustomSearchBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC5A2C73356D00F3F66C /* CustomSearchBarViewController.swift */; };
+ D231DCC22C73356E00F3F66C /* CustomToolbarViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC5C2C73356D00F3F66C /* CustomToolbarViewController.storyboard */; };
+ D231DCC32C73356E00F3F66C /* CustomToolbarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC5D2C73356D00F3F66C /* CustomToolbarViewController.swift */; };
+ D231DCC42C73356E00F3F66C /* DatePickerController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC5F2C73356D00F3F66C /* DatePickerController.storyboard */; };
+ D231DCC52C73356E00F3F66C /* DatePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC602C73356D00F3F66C /* DatePickerController.swift */; };
+ D231DCC62C73356E00F3F66C /* DefaultPageControlViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC622C73356D00F3F66C /* DefaultPageControlViewController.storyboard */; };
+ D231DCC72C73356E00F3F66C /* DefaultPageControlViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC632C73356D00F3F66C /* DefaultPageControlViewController.swift */; };
+ D231DCC82C73356E00F3F66C /* DefaultSearchBarViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC652C73356D00F3F66C /* DefaultSearchBarViewController.storyboard */; };
+ D231DCC92C73356E00F3F66C /* DefaultSearchBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC662C73356D00F3F66C /* DefaultSearchBarViewController.swift */; };
+ D231DCCA2C73356E00F3F66C /* DefaultToolbarViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC682C73356D00F3F66C /* DefaultToolbarViewController.storyboard */; };
+ D231DCCB2C73356E00F3F66C /* DefaultToolbarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC692C73356D00F3F66C /* DefaultToolbarViewController.swift */; };
+ D231DCCC2C73356E00F3F66C /* FontPickerViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC6B2C73356D00F3F66C /* FontPickerViewController.storyboard */; };
+ D231DCCD2C73356E00F3F66C /* FontPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC6C2C73356D00F3F66C /* FontPickerViewController.swift */; };
+ D231DCCE2C73356E00F3F66C /* ImagePickerViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC6E2C73356D00F3F66C /* ImagePickerViewController.storyboard */; };
+ D231DCCF2C73356E00F3F66C /* ImagePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC6F2C73356D00F3F66C /* ImagePickerViewController.swift */; };
+ D231DCD02C73356E00F3F66C /* ImageViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC712C73356D00F3F66C /* ImageViewController.storyboard */; };
+ D231DCD12C73356E00F3F66C /* ImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC722C73356D00F3F66C /* ImageViewController.swift */; };
+ D231DCD42C73356E00F3F66C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D231DC782C73356D00F3F66C /* Localizable.strings */; };
+ D231DCD52C73356E00F3F66C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC7A2C73356D00F3F66C /* Main.storyboard */; };
+ D231DCD62C73356E00F3F66C /* MenuButtonViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC7C2C73356D00F3F66C /* MenuButtonViewController.storyboard */; };
+ D231DCD72C73356E00F3F66C /* MenuButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC7D2C73356D00F3F66C /* MenuButtonViewController.swift */; };
+ D231DCD82C73356E00F3F66C /* OutlineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC7E2C73356D00F3F66C /* OutlineViewController.swift */; };
+ D231DCD92C73356E00F3F66C /* PickerViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC802C73356D00F3F66C /* PickerViewController.storyboard */; };
+ D231DCDA2C73356E00F3F66C /* PickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC812C73356D00F3F66C /* PickerViewController.swift */; };
+ D231DCDB2C73356E00F3F66C /* PointerInteractionButtonViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC832C73356D00F3F66C /* PointerInteractionButtonViewController.storyboard */; };
+ D231DCDC2C73356E00F3F66C /* PointerInteractionButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC842C73356D00F3F66C /* PointerInteractionButtonViewController.swift */; };
+ D231DCDD2C73356E00F3F66C /* ProgressViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC862C73356D00F3F66C /* ProgressViewController.storyboard */; };
+ D231DCDE2C73356E00F3F66C /* ProgressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC872C73356D00F3F66C /* ProgressViewController.swift */; };
+ D231DCE02C73356E00F3F66C /* SegmentedControlViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC8A2C73356D00F3F66C /* SegmentedControlViewController.storyboard */; };
+ D231DCE12C73356E00F3F66C /* SegmentedControlViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC8B2C73356D00F3F66C /* SegmentedControlViewController.swift */; };
+ D231DCE22C73356E00F3F66C /* SliderViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC8D2C73356D00F3F66C /* SliderViewController.storyboard */; };
+ D231DCE32C73356E00F3F66C /* SliderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC8E2C73356D00F3F66C /* SliderViewController.swift */; };
+ D231DCE42C73356E00F3F66C /* StackViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC902C73356D00F3F66C /* StackViewController.storyboard */; };
+ D231DCE52C73356E00F3F66C /* StackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC912C73356D00F3F66C /* StackViewController.swift */; };
+ D231DCE62C73356E00F3F66C /* StepperViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC932C73356D00F3F66C /* StepperViewController.storyboard */; };
+ D231DCE72C73356E00F3F66C /* StepperViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC942C73356D00F3F66C /* StepperViewController.swift */; };
+ D231DCE82C73356E00F3F66C /* SwitchViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC962C73356D00F3F66C /* SwitchViewController.storyboard */; };
+ D231DCE92C73356E00F3F66C /* SwitchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC972C73356D00F3F66C /* SwitchViewController.swift */; };
+ D231DCEA2C73356E00F3F66C /* SymbolViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC992C73356D00F3F66C /* SymbolViewController.storyboard */; };
+ D231DCEB2C73356E00F3F66C /* SymbolViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC9A2C73356D00F3F66C /* SymbolViewController.swift */; };
+ D231DCEC2C73356E00F3F66C /* TextFieldViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC9C2C73356D00F3F66C /* TextFieldViewController.storyboard */; };
+ D231DCED2C73356E00F3F66C /* TextFieldViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DC9D2C73356D00F3F66C /* TextFieldViewController.swift */; };
+ D231DCEE2C73356E00F3F66C /* TextViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DC9F2C73356D00F3F66C /* TextViewController.storyboard */; };
+ D231DCEF2C73356E00F3F66C /* TextViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DCA02C73356D00F3F66C /* TextViewController.swift */; };
+ D231DCF02C73356E00F3F66C /* TintedToolbarViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DCA22C73356D00F3F66C /* TintedToolbarViewController.storyboard */; };
+ D231DCF12C73356E00F3F66C /* TintedToolbarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DCA32C73356D00F3F66C /* TintedToolbarViewController.swift */; };
+ D231DCF32C73356E00F3F66C /* VisualEffectViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DCA72C73356D00F3F66C /* VisualEffectViewController.storyboard */; };
+ D231DCF42C73356E00F3F66C /* VisualEffectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DCA82C73356D00F3F66C /* VisualEffectViewController.swift */; };
+ D231DCF52C73356E00F3F66C /* WebViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D231DCAA2C73356D00F3F66C /* WebViewController.storyboard */; };
+ D231DCF62C73356E00F3F66C /* WebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DCAB2C73356D00F3F66C /* WebViewController.swift */; };
+ D231DCF92C7342D500F3F66C /* ModuleBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D231DCF82C7342D500F3F66C /* ModuleBundle.swift */; };
+ D23734972D773DD8004CCAED /* BenchmarkMeter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D23734962D773DD1004CCAED /* BenchmarkMeter.swift */; };
+ D23DD32D2C58D80C00B90C4C /* DatadogBenchmarks in Frameworks */ = {isa = PBXBuildFile; productRef = D23DD32C2C58D80C00B90C4C /* DatadogBenchmarks */; };
+ D24BFD472C6B916B00AB9604 /* SyntheticScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = D24BFD462C6B916B00AB9604 /* SyntheticScenario.swift */; };
+ D24E15F32C776956005AE4E8 /* BenchmarkProfiler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D24E15F22C776956005AE4E8 /* BenchmarkProfiler.swift */; };
+ D26DD6E72D0C774000D96148 /* DatadogMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D26DD6E62D0C774000D96148 /* DatadogMonitor.swift */; };
+ D27606A12C514F37002D2A14 /* SessionReplayScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27606982C514F37002D2A14 /* SessionReplayScenario.swift */; };
+ D27606A32C514F37002D2A14 /* Scenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = D276069B2C514F37002D2A14 /* Scenario.swift */; };
+ D27606A42C514F37002D2A14 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D276069D2C514F37002D2A14 /* AppConfiguration.swift */; };
+ D27606A72C514F77002D2A14 /* DatadogCore in Frameworks */ = {isa = PBXBuildFile; productRef = D27606A62C514F77002D2A14 /* DatadogCore */; };
+ D27606A92C514F77002D2A14 /* DatadogLogs in Frameworks */ = {isa = PBXBuildFile; productRef = D27606A82C514F77002D2A14 /* DatadogLogs */; };
+ D27606AB2C514F77002D2A14 /* DatadogRUM in Frameworks */ = {isa = PBXBuildFile; productRef = D27606AA2C514F77002D2A14 /* DatadogRUM */; };
+ D27606AD2C514F77002D2A14 /* DatadogSessionReplay in Frameworks */ = {isa = PBXBuildFile; productRef = D27606AC2C514F77002D2A14 /* DatadogSessionReplay */; };
+ D27606AF2C514F77002D2A14 /* DatadogTrace in Frameworks */ = {isa = PBXBuildFile; productRef = D27606AE2C514F77002D2A14 /* DatadogTrace */; };
+ D28130D42D0C6A2300A3824C /* AnyViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D28130D32D0C6A2300A3824C /* AnyViewModifier.swift */; };
+ D294E9402D0880EB009582F3 /* CatalogSwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D294E93A2D0880EB009582F3 /* CatalogSwiftUI.framework */; };
+ D294E9412D0880EB009582F3 /* CatalogSwiftUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D294E93A2D0880EB009582F3 /* CatalogSwiftUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ D294E9C92D088257009582F3 /* StoreKitConfiguration.storekit in Resources */ = {isa = PBXBuildFile; fileRef = D294E9AB2D088257009582F3 /* StoreKitConfiguration.storekit */; };
+ D294E9CA2D088257009582F3 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D294E9502D088257009582F3 /* Preview Assets.xcassets */; };
+ D294E9CC2D088257009582F3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D294E94B2D088257009582F3 /* Assets.xcassets */; };
+ D294E9CD2D088257009582F3 /* landmarkData.json in Resources */ = {isa = PBXBuildFile; fileRef = D294E95D2D088257009582F3 /* landmarkData.json */; };
+ D294E9CE2D088257009582F3 /* MyOwnMenuStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9AE2D088257009582F3 /* MyOwnMenuStyle.swift */; };
+ D294E9CF2D088257009582F3 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9C62D088257009582F3 /* Style.swift */; };
+ D294E9D02D088257009582F3 /* TextAlignmentModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9C22D088257009582F3 /* TextAlignmentModifier.swift */; };
+ D294E9D12D088257009582F3 /* ScrollViewsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B52D088257009582F3 /* ScrollViewsView.swift */; };
+ D294E9D22D088257009582F3 /* EffectsModifiersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9BD2D088257009582F3 /* EffectsModifiersView.swift */; };
+ D294E9D32D088257009582F3 /* SlidersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9852D088257009582F3 /* SlidersView.swift */; };
+ D294E9D52D088257009582F3 /* ColumnsLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A32D088257009582F3 /* ColumnsLayout.swift */; };
+ D294E9D62D088257009582F3 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E94C2D088257009582F3 /* ContentView.swift */; };
+ D294E9D72D088257009582F3 /* TextsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9872D088257009582F3 /* TextsView.swift */; };
+ D294E9D82D088257009582F3 /* StackedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A52D088257009582F3 /* StackedLayout.swift */; };
+ D294E9D92D088257009582F3 /* IconsAnimationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E98F2D088257009582F3 /* IconsAnimationsView.swift */; };
+ D294E9DA2D088257009582F3 /* ButtonRoundedModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9BB2D088257009582F3 /* ButtonRoundedModifier.swift */; };
+ D294E9DB2D088257009582F3 /* PickersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9832D088257009582F3 /* PickersView.swift */; };
+ D294E9DC2D088257009582F3 /* SpringAnimationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9942D088257009582F3 /* SpringAnimationView.swift */; };
+ D294E9DD2D088257009582F3 /* ShapesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9932D088257009582F3 /* ShapesView.swift */; };
+ D294E9DE2D088257009582F3 /* SheetsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9772D088257009582F3 /* SheetsView.swift */; };
+ D294E9E02D088257009582F3 /* PopoversView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9752D088257009582F3 /* PopoversView.swift */; };
+ D294E9E12D088257009582F3 /* CustomAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E98C2D088257009582F3 /* CustomAnimation.swift */; };
+ D294E9E22D088257009582F3 /* RobbieWithPulse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9762D088257009582F3 /* RobbieWithPulse.swift */; };
+ D294E9E32D088257009582F3 /* ChartsViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9742D088257009582F3 /* ChartsViews.swift */; };
+ D294E9E42D088257009582F3 /* MyCustomAnimationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9912D088257009582F3 /* MyCustomAnimationView.swift */; };
+ D294E9E52D088257009582F3 /* SensoryFeedbackInViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9C12D088257009582F3 /* SensoryFeedbackInViews.swift */; };
+ D294E9E62D088257009582F3 /* MotionsAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9902D088257009582F3 /* MotionsAnimation.swift */; };
+ D294E9E72D088257009582F3 /* MenuSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E94F2D088257009582F3 /* MenuSection.swift */; };
+ D294E9E82D088257009582F3 /* TogglesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9882D088257009582F3 /* TogglesView.swift */; };
+ D294E9E92D088257009582F3 /* ColumnsLayoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A42D088257009582F3 /* ColumnsLayoutView.swift */; };
+ D294E9EA2D088257009582F3 /* CircleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A12D088257009582F3 /* CircleLayout.swift */; };
+ D294E9EB2D088257009582F3 /* ToolbarsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E97B2D088257009582F3 /* ToolbarsView.swift */; };
+ D294E9EC2D088257009582F3 /* TimelineViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9792D088257009582F3 /* TimelineViews.swift */; };
+ D294E9ED2D088257009582F3 /* ContributedByView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9662D088257009582F3 /* ContributedByView.swift */; };
+ D294E9EE2D088257009582F3 /* VerticalAlignmentPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E96E2D088257009582F3 /* VerticalAlignmentPicker.swift */; };
+ D294E9EF2D088257009582F3 /* DisclosureGroupsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E99C2D088257009582F3 /* DisclosureGroupsView.swift */; };
+ D294E9F02D088257009582F3 /* CollectionsViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9532D088257009582F3 /* CollectionsViews.swift */; };
+ D294E9F12D088257009582F3 /* TagsCloudLayoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A82D088257009582F3 /* TagsCloudLayoutView.swift */; };
+ D294E9F22D088257009582F3 /* PropertiesAnimationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9922D088257009582F3 /* PropertiesAnimationsView.swift */; };
+ D294E9F32D088257009582F3 /* DividedModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9BC2D088257009582F3 /* DividedModifier.swift */; };
+ D294E9F42D088257009582F3 /* CircleLayoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A22D088257009582F3 /* CircleLayoutView.swift */; };
+ D294E9F52D088257009582F3 /* TimingCurvesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9952D088257009582F3 /* TimingCurvesView.swift */; };
+ D294E9F62D088257009582F3 /* PageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9612D088257009582F3 /* PageControl.swift */; };
+ D294E9F72D088257009582F3 /* ComposingGestureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9982D088257009582F3 /* ComposingGestureView.swift */; };
+ D294E9F82D088257009582F3 /* FeatureCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E95F2D088257009582F3 /* FeatureCardView.swift */; };
+ D294E9F92D088257009582F3 /* LabelsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9812D088257009582F3 /* LabelsView.swift */; };
+ D294E9FA2D088257009582F3 /* NavigatableModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9C02D088257009582F3 /* NavigatableModifier.swift */; };
+ D294E9FB2D088257009582F3 /* ButtonFontModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9BA2D088257009582F3 /* ButtonFontModifier.swift */; };
+ D294E9FC2D088257009582F3 /* MyOwnButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9AD2D088257009582F3 /* MyOwnButtonStyle.swift */; };
+ D294E9FD2D088257009582F3 /* Landmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E95A2D088257009582F3 /* Landmark.swift */; };
+ D294E9FE2D088257009582F3 /* GridsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B22D088257009582F3 /* GridsView.swift */; };
+ D294E9FF2D088257009582F3 /* ListsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B42D088257009582F3 /* ListsView.swift */; };
+ D294EA002D088257009582F3 /* CanvasView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E98B2D088257009582F3 /* CanvasView.swift */; };
+ D294EA012D088257009582F3 /* NavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E99D2D088257009582F3 /* NavigationView.swift */; };
+ D294EA022D088257009582F3 /* ProgressViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9842D088257009582F3 /* ProgressViews.swift */; };
+ D294EA032D088257009582F3 /* GeometriesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9992D088257009582F3 /* GeometriesView.swift */; };
+ D294EA042D088257009582F3 /* ModelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E95B2D088257009582F3 /* ModelData.swift */; };
+ D294EA052D088257009582F3 /* TextModifiersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9C32D088257009582F3 /* TextModifiersView.swift */; };
+ D294EA062D088257009582F3 /* ButtonBorderModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B92D088257009582F3 /* ButtonBorderModifier.swift */; };
+ D294EA072D088257009582F3 /* AnimationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E98A2D088257009582F3 /* AnimationsView.swift */; };
+ D294EA082D088257009582F3 /* StacksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B62D088257009582F3 /* StacksView.swift */; };
+ D294EA092D088257009582F3 /* SpacersDividersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9782D088257009582F3 /* SpacersDividersView.swift */; };
+ D294EA0A2D088257009582F3 /* StackedCardsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9572D088257009582F3 /* StackedCardsView.swift */; };
+ D294EA0B2D088257009582F3 /* ContributionWantedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9672D088257009582F3 /* ContributionWantedView.swift */; };
+ D294EA0C2D088257009582F3 /* TagsCloudLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A72D088257009582F3 /* TagsCloudLayout.swift */; };
+ D294EA0D2D088257009582F3 /* ImagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9802D088257009582F3 /* ImagesView.swift */; };
+ D294EA0E2D088257009582F3 /* GraphicContextsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E98E2D088257009582F3 /* GraphicContextsView.swift */; };
+ D294EA0F2D088257009582F3 /* ImageWithOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9562D088257009582F3 /* ImageWithOverlayView.swift */; };
+ D294EA102D088257009582F3 /* ListSectionFontModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9BF2D088257009582F3 /* ListSectionFontModifier.swift */; };
+ D294EA112D088257009582F3 /* GesturesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E99A2D088257009582F3 /* GesturesView.swift */; };
+ D294EA122D088257009582F3 /* LinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E96A2D088257009582F3 /* LinkView.swift */; };
+ D294EA132D088257009582F3 /* MenuesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9822D088257009582F3 /* MenuesView.swift */; };
+ D294EA142D088257009582F3 /* UIFontTextStylePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E96D2D088257009582F3 /* UIFontTextStylePicker.swift */; };
+ D294EA152D088257009582F3 /* StylesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9AF2D088257009582F3 /* StylesView.swift */; };
+ D294EA162D088257009582F3 /* AnimatableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9642D088257009582F3 /* AnimatableView.swift */; };
+ D294EA172D088257009582F3 /* LabelStylePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9692D088257009582F3 /* LabelStylePicker.swift */; };
+ D294EA182D088257009582F3 /* InterfacingWithUIKitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9602D088257009582F3 /* InterfacingWithUIKitView.swift */; };
+ D294EA192D088257009582F3 /* LayoutModifiersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9BE2D088257009582F3 /* LayoutModifiersView.swift */; };
+ D294EA1A2D088257009582F3 /* AlertsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9732D088257009582F3 /* AlertsView.swift */; };
+ D294EA1B2D088257009582F3 /* PageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9622D088257009582F3 /* PageViewController.swift */; };
+ D294EA1C2D088257009582F3 /* HeaderImageTitleSubtitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9552D088257009582F3 /* HeaderImageTitleSubtitleView.swift */; };
+ D294EA1D2D088257009582F3 /* LayoutsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B32D088257009582F3 /* LayoutsView.swift */; };
+ D294EA1E2D088257009582F3 /* AccesibilityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9712D088257009582F3 /* AccesibilityView.swift */; };
+ D294EA1F2D088257009582F3 /* ColorPickersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E97E2D088257009582F3 /* ColorPickersView.swift */; };
+ D294EA202D088257009582F3 /* CommonlyUsedViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9542D088257009582F3 /* CommonlyUsedViews.swift */; };
+ D294EA212D088257009582F3 /* ContenView+SectionsBuilding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E94D2D088257009582F3 /* ContenView+SectionsBuilding.swift */; };
+ D294EA222D088257009582F3 /* TransitionsAnimationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9962D088257009582F3 /* TransitionsAnimationsView.swift */; };
+ D294EA232D088257009582F3 /* ContainersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B12D088257009582F3 /* ContainersView.swift */; };
+ D294EA242D088257009582F3 /* AspectRatioModePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9652D088257009582F3 /* AspectRatioModePicker.swift */; };
+ D294EA252D088257009582F3 /* DatePickersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E97F2D088257009582F3 /* DatePickersView.swift */; };
+ D294EA262D088257009582F3 /* ButtonsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E97D2D088257009582F3 /* ButtonsView.swift */; };
+ D294EA272D088257009582F3 /* SwipableViewContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E96C2D088257009582F3 /* SwipableViewContainer.swift */; };
+ D294EA282D088257009582F3 /* StackedLayoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9A62D088257009582F3 /* StackedLayoutView.swift */; };
+ D294EA292D088257009582F3 /* ExampleProductView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9AA2D088257009582F3 /* ExampleProductView.swift */; };
+ D294EA2A2D088257009582F3 /* PageContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E96B2D088257009582F3 /* PageContainer.swift */; };
+ D294EA2B2D088257009582F3 /* TabsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E99F2D088257009582F3 /* TabsView.swift */; };
+ D294EA2C2D088257009582F3 /* DocumentationLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9682D088257009582F3 /* DocumentationLinkView.swift */; };
+ D294EA2D2D088257009582F3 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E96F2D088257009582F3 /* WebView.swift */; };
+ D294EA2E2D088257009582F3 /* OutlinesGroupsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E99E2D088257009582F3 /* OutlinesGroupsView.swift */; };
+ D294EA2F2D088257009582F3 /* TableViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9B72D088257009582F3 /* TableViews.swift */; };
+ D294EA302D088257009582F3 /* TitleSubtitleIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9582D088257009582F3 /* TitleSubtitleIconView.swift */; };
+ D294EA312D088257009582F3 /* SteppersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294E9862D088257009582F3 /* SteppersView.swift */; };
+ D294EA332D088377009582F3 /* SessionReplaySwiftUIScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294EA322D088377009582F3 /* SessionReplaySwiftUIScenario.swift */; };
+ D294EA352D08850F009582F3 /* ModuleBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D294EA342D08850F009582F3 /* ModuleBundle.swift */; };
+ D29F75502C4AA07E00288638 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D29F754F2C4AA07E00288638 /* AppDelegate.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ D231DC352C73355800F3F66C /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D29F75282C4A9EFA00288638 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D231DC302C73355800F3F66C;
+ remoteInfo = UIKitCatalog;
+ };
+ D294E93E2D0880EB009582F3 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D29F75282C4A9EFA00288638 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D294E9392D0880EB009582F3;
+ remoteInfo = SwiftUICatalog;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ D29F75872C4AA98F00288638 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ D294E9412D0880EB009582F3 /* CatalogSwiftUI.framework in Embed Frameworks */,
+ D231DC382C73355800F3F66C /* CatalogUIKit.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 86252B1A2D818E360098FAEF /* TraceScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TraceScenario.swift; sourceTree = ""; };
+ 86252B1C2D8190DA0098FAEF /* TraceContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TraceContentView.swift; sourceTree = ""; };
+ 8649177C2D8875C300761363 /* RUMManualContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMManualContentView.swift; sourceTree = ""; };
+ 8649177E2D8875D100761363 /* RUMManualScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMManualScenario.swift; sourceTree = ""; };
+ 868DA2E52D706456007D20D5 /* LogsCustomScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsCustomScenario.swift; sourceTree = ""; };
+ 868DA2EB2D706E61007D20D5 /* LogsCustomContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsCustomContentView.swift; sourceTree = ""; };
+ 868DA2F42D71DD47007D20D5 /* LogsHeavyTrafficScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsHeavyTrafficScenario.swift; sourceTree = ""; };
+ 868DA2F62D71DD8A007D20D5 /* LogsHeavyTrafficContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsHeavyTrafficContentView.swift; sourceTree = ""; };
+ 868DA2F82D71E622007D20D5 /* LogsUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsUtils.swift; sourceTree = ""; };
+ D231DC312C73355800F3F66C /* CatalogUIKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CatalogUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 86FA742A2D89C49400F69130 /* RUMAutoScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMAutoScenario.swift; sourceTree = ""; };
+ 86FA742C2D89C4B800F69130 /* RUMAutoContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMAutoContentView.swift; sourceTree = ""; };
+ 86FA742E2D89CBF100F69130 /* CharactersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharactersView.swift; sourceTree = ""; };
+ 86FA74302D89CC0400F69130 /* LocationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsView.swift; sourceTree = ""; };
+ 86FA74322D89CC1500F69130 /* EpisodesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodesView.swift; sourceTree = ""; };
+ 86FA74342D89CC2400F69130 /* DocsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocsView.swift; sourceTree = ""; };
+ 86FA74382D8AC2C700F69130 /* RickMortyService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RickMortyService.swift; sourceTree = ""; };
+ 86FA743A2D8AC3C900F69130 /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; };
+ 86FA743C2D8AD6AE00F69130 /* LocationsView.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LocationsView.storyboard; sourceTree = ""; };
+ 86FA743E2D8AE85B00F69130 /* LocationsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationsViewController.swift; sourceTree = ""; };
+ 86FA74402D8AF38F00F69130 /* LocationDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationDetailViewController.swift; sourceTree = ""; };
+ 86FA74462D8B128C00F69130 /* CharacterCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterCollectionViewCell.swift; sourceTree = ""; };
+ 86FBEDC02D8C273C005CFCC4 /* CharacterModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterModels.swift; sourceTree = ""; };
+ 86FBEDC12D8C273C005CFCC4 /* CommonTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonTypes.swift; sourceTree = ""; };
+ 86FBEDC22D8C273C005CFCC4 /* EpisodeModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeModels.swift; sourceTree = ""; };
+ 86FBEDC32D8C273C005CFCC4 /* LocationModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationModels.swift; sourceTree = ""; };
+ 86FBEDC82D8C29C3005CFCC4 /* CharacterDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterDetailView.swift; sourceTree = ""; };
+ 86FBEDC92D8C29C3005CFCC4 /* CharacterListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CharacterListItem.swift; sourceTree = ""; };
+ 86FBEDCA2D8C29C3005CFCC4 /* InfoRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRow.swift; sourceTree = ""; };
+ 86FBEDCB2D8C29C3005CFCC4 /* StatusBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBadge.swift; sourceTree = ""; };
+ 86FBEDD02D8C2B04005CFCC4 /* LocationCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationCollectionViewCell.swift; sourceTree = ""; };
+ 86FBEDD22D8C4348005CFCC4 /* EpisodeListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeListItem.swift; sourceTree = ""; };
+ 86FBEDD42D8C436D005CFCC4 /* EpisodeDetailHostingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeDetailHostingController.swift; sourceTree = ""; };
+ 86FBEDDA2D8C491E005CFCC4 /* EpisodeDetailView.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EpisodeDetailView.storyboard; sourceTree = ""; };
+ 86FBEDDB2D8C491E005CFCC4 /* EpisodeDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeDetailViewController.swift; sourceTree = ""; };
+ D231DC402C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ActivityIndicatorViewController.storyboard; sourceTree = ""; };
+ D231DC422C73356D00F3F66C /* ActivityIndicatorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorViewController.swift; sourceTree = ""; };
+ D231DC432C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/AlertControllerViewController.storyboard; sourceTree = ""; };
+ D231DC452C73356D00F3F66C /* AlertControllerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertControllerViewController.swift; sourceTree = ""; };
+ D231DC472C73356D00F3F66C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ D231DC482C73356D00F3F66C /* BaseTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseTableViewController.swift; sourceTree = ""; };
+ D231DC492C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ButtonViewController.storyboard; sourceTree = ""; };
+ D231DC4B2C73356D00F3F66C /* ButtonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonViewController.swift; sourceTree = ""; };
+ D231DC4C2C73356D00F3F66C /* ButtonViewController+Configs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ButtonViewController+Configs.swift"; sourceTree = ""; };
+ D231DC4D2C73356D00F3F66C /* CaseElement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CaseElement.swift; sourceTree = ""; };
+ D231DC4E2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ColorPickerViewController.storyboard; sourceTree = ""; };
+ D231DC502C73356D00F3F66C /* ColorPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerViewController.swift; sourceTree = ""; };
+ D231DC512C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = Base; path = Base.lproj/content.html; sourceTree = ""; };
+ D231DC532C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Base; path = Base.lproj/Credits.rtf; sourceTree = ""; };
+ D231DC552C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/CustomPageControlViewController.storyboard; sourceTree = ""; };
+ D231DC572C73356D00F3F66C /* CustomPageControlViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomPageControlViewController.swift; sourceTree = ""; };
+ D231DC582C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/CustomSearchBarViewController.storyboard; sourceTree = ""; };
+ D231DC5A2C73356D00F3F66C /* CustomSearchBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomSearchBarViewController.swift; sourceTree = ""; };
+ D231DC5B2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/CustomToolbarViewController.storyboard; sourceTree = ""; };
+ D231DC5D2C73356D00F3F66C /* CustomToolbarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomToolbarViewController.swift; sourceTree = ""; };
+ D231DC5E2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/DatePickerController.storyboard; sourceTree = ""; };
+ D231DC602C73356D00F3F66C /* DatePickerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatePickerController.swift; sourceTree = ""; };
+ D231DC612C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/DefaultPageControlViewController.storyboard; sourceTree = ""; };
+ D231DC632C73356D00F3F66C /* DefaultPageControlViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultPageControlViewController.swift; sourceTree = ""; };
+ D231DC642C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/DefaultSearchBarViewController.storyboard; sourceTree = ""; };
+ D231DC662C73356D00F3F66C /* DefaultSearchBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultSearchBarViewController.swift; sourceTree = ""; };
+ D231DC672C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/DefaultToolbarViewController.storyboard; sourceTree = ""; };
+ D231DC692C73356D00F3F66C /* DefaultToolbarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultToolbarViewController.swift; sourceTree = ""; };
+ D231DC6A2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/FontPickerViewController.storyboard; sourceTree = ""; };
+ D231DC6C2C73356D00F3F66C /* FontPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontPickerViewController.swift; sourceTree = ""; };
+ D231DC6D2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ImagePickerViewController.storyboard; sourceTree = ""; };
+ D231DC6F2C73356D00F3F66C /* ImagePickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImagePickerViewController.swift; sourceTree = ""; };
+ D231DC702C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ImageViewController.storyboard; sourceTree = ""; };
+ D231DC722C73356D00F3F66C /* ImageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageViewController.swift; sourceTree = ""; };
+ D231DC772C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; };
+ D231DC792C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
+ D231DC7B2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MenuButtonViewController.storyboard; sourceTree = ""; };
+ D231DC7D2C73356D00F3F66C /* MenuButtonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuButtonViewController.swift; sourceTree = ""; };
+ D231DC7E2C73356D00F3F66C /* OutlineViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutlineViewController.swift; sourceTree = ""; };
+ D231DC7F2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/PickerViewController.storyboard; sourceTree = ""; };
+ D231DC812C73356D00F3F66C /* PickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickerViewController.swift; sourceTree = ""; };
+ D231DC822C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/PointerInteractionButtonViewController.storyboard; sourceTree = ""; };
+ D231DC842C73356D00F3F66C /* PointerInteractionButtonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointerInteractionButtonViewController.swift; sourceTree = ""; };
+ D231DC852C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/ProgressViewController.storyboard; sourceTree = ""; };
+ D231DC872C73356D00F3F66C /* ProgressViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewController.swift; sourceTree = ""; };
+ D231DC892C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SegmentedControlViewController.storyboard; sourceTree = ""; };
+ D231DC8B2C73356D00F3F66C /* SegmentedControlViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlViewController.swift; sourceTree = ""; };
+ D231DC8C2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SliderViewController.storyboard; sourceTree = ""; };
+ D231DC8E2C73356D00F3F66C /* SliderViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SliderViewController.swift; sourceTree = ""; };
+ D231DC8F2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/StackViewController.storyboard; sourceTree = ""; };
+ D231DC912C73356D00F3F66C /* StackViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StackViewController.swift; sourceTree = ""; };
+ D231DC922C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/StepperViewController.storyboard; sourceTree = ""; };
+ D231DC942C73356D00F3F66C /* StepperViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StepperViewController.swift; sourceTree = ""; };
+ D231DC952C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SwitchViewController.storyboard; sourceTree = ""; };
+ D231DC972C73356D00F3F66C /* SwitchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwitchViewController.swift; sourceTree = ""; };
+ D231DC982C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SymbolViewController.storyboard; sourceTree = ""; };
+ D231DC9A2C73356D00F3F66C /* SymbolViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SymbolViewController.swift; sourceTree = ""; };
+ D231DC9B2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/TextFieldViewController.storyboard; sourceTree = ""; };
+ D231DC9D2C73356D00F3F66C /* TextFieldViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldViewController.swift; sourceTree = ""; };
+ D231DC9E2C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/TextViewController.storyboard; sourceTree = ""; };
+ D231DCA02C73356D00F3F66C /* TextViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewController.swift; sourceTree = ""; };
+ D231DCA12C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/TintedToolbarViewController.storyboard; sourceTree = ""; };
+ D231DCA32C73356D00F3F66C /* TintedToolbarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedToolbarViewController.swift; sourceTree = ""; };
+ D231DCA62C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/VisualEffectViewController.storyboard; sourceTree = ""; };
+ D231DCA82C73356D00F3F66C /* VisualEffectViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VisualEffectViewController.swift; sourceTree = ""; };
+ D231DCA92C73356D00F3F66C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/WebViewController.storyboard; sourceTree = ""; };
+ D231DCAB2C73356D00F3F66C /* WebViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebViewController.swift; sourceTree = ""; };
+ D231DCF82C7342D500F3F66C /* ModuleBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModuleBundle.swift; sourceTree = ""; };
+ D231DCFA2C735FC200F3F66C /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE.txt; sourceTree = ""; };
+ D23734962D773DD1004CCAED /* BenchmarkMeter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BenchmarkMeter.swift; sourceTree = ""; };
+ D24BFD462C6B916B00AB9604 /* SyntheticScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyntheticScenario.swift; sourceTree = ""; };
+ D24E15F22C776956005AE4E8 /* BenchmarkProfiler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BenchmarkProfiler.swift; sourceTree = ""; };
+ D26DD6E62D0C774000D96148 /* DatadogMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatadogMonitor.swift; sourceTree = ""; };
+ D27606982C514F37002D2A14 /* SessionReplayScenario.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SessionReplayScenario.swift; sourceTree = ""; };
+ D276069B2C514F37002D2A14 /* Scenario.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Scenario.swift; sourceTree = ""; };
+ D276069D2C514F37002D2A14 /* AppConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppConfiguration.swift; sourceTree = ""; };
+ D27606B22C526908002D2A14 /* Benchmarks.local.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Benchmarks.local.xcconfig; sourceTree = ""; };
+ D27606B32C526908002D2A14 /* Runner.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Runner.xcconfig; sourceTree = ""; };
+ D27606B42C526908002D2A14 /* Synthetics.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Synthetics.xcconfig; sourceTree = ""; };
+ D277C84A2C58D3210072343C /* Benchmarks */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Benchmarks; sourceTree = ""; };
+ D28130D32D0C6A2300A3824C /* AnyViewModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyViewModifier.swift; sourceTree = ""; };
+ D294E93A2D0880EB009582F3 /* CatalogSwiftUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CatalogSwiftUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ D294E94A2D088154009582F3 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; };
+ D294E94B2D088257009582F3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ D294E94C2D088257009582F3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
+ D294E94D2D088257009582F3 /* ContenView+SectionsBuilding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ContenView+SectionsBuilding.swift"; sourceTree = ""; };
+ D294E94F2D088257009582F3 /* MenuSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuSection.swift; sourceTree = ""; };
+ D294E9502D088257009582F3 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
+ D294E9532D088257009582F3 /* CollectionsViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionsViews.swift; sourceTree = ""; };
+ D294E9542D088257009582F3 /* CommonlyUsedViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonlyUsedViews.swift; sourceTree = ""; };
+ D294E9552D088257009582F3 /* HeaderImageTitleSubtitleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderImageTitleSubtitleView.swift; sourceTree = ""; };
+ D294E9562D088257009582F3 /* ImageWithOverlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageWithOverlayView.swift; sourceTree = ""; };
+ D294E9572D088257009582F3 /* StackedCardsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedCardsView.swift; sourceTree = ""; };
+ D294E9582D088257009582F3 /* TitleSubtitleIconView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitleSubtitleIconView.swift; sourceTree = ""; };
+ D294E95A2D088257009582F3 /* Landmark.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Landmark.swift; sourceTree = ""; };
+ D294E95B2D088257009582F3 /* ModelData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelData.swift; sourceTree = ""; };
+ D294E95D2D088257009582F3 /* landmarkData.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = landmarkData.json; sourceTree = ""; };
+ D294E95F2D088257009582F3 /* FeatureCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureCardView.swift; sourceTree = ""; };
+ D294E9602D088257009582F3 /* InterfacingWithUIKitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfacingWithUIKitView.swift; sourceTree = ""; };
+ D294E9612D088257009582F3 /* PageControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageControl.swift; sourceTree = ""; };
+ D294E9622D088257009582F3 /* PageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageViewController.swift; sourceTree = ""; };
+ D294E9642D088257009582F3 /* AnimatableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimatableView.swift; sourceTree = ""; };
+ D294E9652D088257009582F3 /* AspectRatioModePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AspectRatioModePicker.swift; sourceTree = ""; };
+ D294E9662D088257009582F3 /* ContributedByView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContributedByView.swift; sourceTree = ""; };
+ D294E9672D088257009582F3 /* ContributionWantedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContributionWantedView.swift; sourceTree = ""; };
+ D294E9682D088257009582F3 /* DocumentationLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocumentationLinkView.swift; sourceTree = ""; };
+ D294E9692D088257009582F3 /* LabelStylePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelStylePicker.swift; sourceTree = ""; };
+ D294E96A2D088257009582F3 /* LinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkView.swift; sourceTree = ""; };
+ D294E96B2D088257009582F3 /* PageContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageContainer.swift; sourceTree = ""; };
+ D294E96C2D088257009582F3 /* SwipableViewContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwipableViewContainer.swift; sourceTree = ""; };
+ D294E96D2D088257009582F3 /* UIFontTextStylePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFontTextStylePicker.swift; sourceTree = ""; };
+ D294E96E2D088257009582F3 /* VerticalAlignmentPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalAlignmentPicker.swift; sourceTree = ""; };
+ D294E96F2D088257009582F3 /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; };
+ D294E9712D088257009582F3 /* AccesibilityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccesibilityView.swift; sourceTree = ""; };
+ D294E9732D088257009582F3 /* AlertsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertsView.swift; sourceTree = ""; };
+ D294E9742D088257009582F3 /* ChartsViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartsViews.swift; sourceTree = ""; };
+ D294E9752D088257009582F3 /* PopoversView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoversView.swift; sourceTree = ""; };
+ D294E9762D088257009582F3 /* RobbieWithPulse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RobbieWithPulse.swift; sourceTree = ""; };
+ D294E9772D088257009582F3 /* SheetsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SheetsView.swift; sourceTree = ""; };
+ D294E9782D088257009582F3 /* SpacersDividersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpacersDividersView.swift; sourceTree = ""; };
+ D294E9792D088257009582F3 /* TimelineViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineViews.swift; sourceTree = ""; };
+ D294E97B2D088257009582F3 /* ToolbarsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolbarsView.swift; sourceTree = ""; };
+ D294E97D2D088257009582F3 /* ButtonsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsView.swift; sourceTree = ""; };
+ D294E97E2D088257009582F3 /* ColorPickersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickersView.swift; sourceTree = ""; };
+ D294E97F2D088257009582F3 /* DatePickersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickersView.swift; sourceTree = ""; };
+ D294E9802D088257009582F3 /* ImagesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagesView.swift; sourceTree = ""; };
+ D294E9812D088257009582F3 /* LabelsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelsView.swift; sourceTree = ""; };
+ D294E9822D088257009582F3 /* MenuesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuesView.swift; sourceTree = ""; };
+ D294E9832D088257009582F3 /* PickersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickersView.swift; sourceTree = ""; };
+ D294E9842D088257009582F3 /* ProgressViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressViews.swift; sourceTree = ""; };
+ D294E9852D088257009582F3 /* SlidersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlidersView.swift; sourceTree = ""; };
+ D294E9862D088257009582F3 /* SteppersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SteppersView.swift; sourceTree = ""; };
+ D294E9872D088257009582F3 /* TextsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextsView.swift; sourceTree = ""; };
+ D294E9882D088257009582F3 /* TogglesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TogglesView.swift; sourceTree = ""; };
+ D294E98A2D088257009582F3 /* AnimationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationsView.swift; sourceTree = ""; };
+ D294E98B2D088257009582F3 /* CanvasView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CanvasView.swift; sourceTree = ""; };
+ D294E98C2D088257009582F3 /* CustomAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAnimation.swift; sourceTree = ""; };
+ D294E98E2D088257009582F3 /* GraphicContextsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GraphicContextsView.swift; sourceTree = ""; };
+ D294E98F2D088257009582F3 /* IconsAnimationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconsAnimationsView.swift; sourceTree = ""; };
+ D294E9902D088257009582F3 /* MotionsAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionsAnimation.swift; sourceTree = ""; };
+ D294E9912D088257009582F3 /* MyCustomAnimationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCustomAnimationView.swift; sourceTree = ""; };
+ D294E9922D088257009582F3 /* PropertiesAnimationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PropertiesAnimationsView.swift; sourceTree = ""; };
+ D294E9932D088257009582F3 /* ShapesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapesView.swift; sourceTree = ""; };
+ D294E9942D088257009582F3 /* SpringAnimationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpringAnimationView.swift; sourceTree = ""; };
+ D294E9952D088257009582F3 /* TimingCurvesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimingCurvesView.swift; sourceTree = ""; };
+ D294E9962D088257009582F3 /* TransitionsAnimationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransitionsAnimationsView.swift; sourceTree = ""; };
+ D294E9982D088257009582F3 /* ComposingGestureView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposingGestureView.swift; sourceTree = ""; };
+ D294E9992D088257009582F3 /* GeometriesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeometriesView.swift; sourceTree = ""; };
+ D294E99A2D088257009582F3 /* GesturesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GesturesView.swift; sourceTree = ""; };
+ D294E99C2D088257009582F3 /* DisclosureGroupsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisclosureGroupsView.swift; sourceTree = ""; };
+ D294E99D2D088257009582F3 /* NavigationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationView.swift; sourceTree = ""; };
+ D294E99E2D088257009582F3 /* OutlinesGroupsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutlinesGroupsView.swift; sourceTree = ""; };
+ D294E99F2D088257009582F3 /* TabsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabsView.swift; sourceTree = ""; };
+ D294E9A12D088257009582F3 /* CircleLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleLayout.swift; sourceTree = ""; };
+ D294E9A22D088257009582F3 /* CircleLayoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleLayoutView.swift; sourceTree = ""; };
+ D294E9A32D088257009582F3 /* ColumnsLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColumnsLayout.swift; sourceTree = ""; };
+ D294E9A42D088257009582F3 /* ColumnsLayoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColumnsLayoutView.swift; sourceTree = ""; };
+ D294E9A52D088257009582F3 /* StackedLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedLayout.swift; sourceTree = ""; };
+ D294E9A62D088257009582F3 /* StackedLayoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StackedLayoutView.swift; sourceTree = ""; };
+ D294E9A72D088257009582F3 /* TagsCloudLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagsCloudLayout.swift; sourceTree = ""; };
+ D294E9A82D088257009582F3 /* TagsCloudLayoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagsCloudLayoutView.swift; sourceTree = ""; };
+ D294E9AA2D088257009582F3 /* ExampleProductView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleProductView.swift; sourceTree = ""; };
+ D294E9AB2D088257009582F3 /* StoreKitConfiguration.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = StoreKitConfiguration.storekit; sourceTree = ""; };
+ D294E9AD2D088257009582F3 /* MyOwnButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyOwnButtonStyle.swift; sourceTree = ""; };
+ D294E9AE2D088257009582F3 /* MyOwnMenuStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyOwnMenuStyle.swift; sourceTree = ""; };
+ D294E9AF2D088257009582F3 /* StylesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StylesView.swift; sourceTree = ""; };
+ D294E9B12D088257009582F3 /* ContainersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainersView.swift; sourceTree = ""; };
+ D294E9B22D088257009582F3 /* GridsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridsView.swift; sourceTree = ""; };
+ D294E9B32D088257009582F3 /* LayoutsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutsView.swift; sourceTree = ""; };
+ D294E9B42D088257009582F3 /* ListsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListsView.swift; sourceTree = ""; };
+ D294E9B52D088257009582F3 /* ScrollViewsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollViewsView.swift; sourceTree = ""; };
+ D294E9B62D088257009582F3 /* StacksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StacksView.swift; sourceTree = ""; };
+ D294E9B72D088257009582F3 /* TableViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViews.swift; sourceTree = ""; };
+ D294E9B92D088257009582F3 /* ButtonBorderModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonBorderModifier.swift; sourceTree = ""; };
+ D294E9BA2D088257009582F3 /* ButtonFontModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonFontModifier.swift; sourceTree = ""; };
+ D294E9BB2D088257009582F3 /* ButtonRoundedModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonRoundedModifier.swift; sourceTree = ""; };
+ D294E9BC2D088257009582F3 /* DividedModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DividedModifier.swift; sourceTree = ""; };
+ D294E9BD2D088257009582F3 /* EffectsModifiersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EffectsModifiersView.swift; sourceTree = ""; };
+ D294E9BE2D088257009582F3 /* LayoutModifiersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutModifiersView.swift; sourceTree = ""; };
+ D294E9BF2D088257009582F3 /* ListSectionFontModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListSectionFontModifier.swift; sourceTree = ""; };
+ D294E9C02D088257009582F3 /* NavigatableModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigatableModifier.swift; sourceTree = ""; };
+ D294E9C12D088257009582F3 /* SensoryFeedbackInViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SensoryFeedbackInViews.swift; sourceTree = ""; };
+ D294E9C22D088257009582F3 /* TextAlignmentModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextAlignmentModifier.swift; sourceTree = ""; };
+ D294E9C32D088257009582F3 /* TextModifiersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextModifiersView.swift; sourceTree = ""; };
+ D294E9C62D088257009582F3 /* Style.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Style.swift; sourceTree = ""; };
+ D294EA322D088377009582F3 /* SessionReplaySwiftUIScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionReplaySwiftUIScenario.swift; sourceTree = ""; };
+ D294EA342D08850F009582F3 /* ModuleBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModuleBundle.swift; sourceTree = ""; };
+ D29F754D2C4AA07E00288638 /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ D29F754F2C4AA07E00288638 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ D29F755D2C4AA08000288638 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ D2CA7E862C57F9B800AAB380 /* dd-sdk-ios */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "dd-sdk-ios"; path = ..; sourceTree = ""; };
+ D2E60B9F2C732FBB00A18F1C /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D231DC2E2C73355800F3F66C /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D294E9372D0880EB009582F3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D29F754A2C4AA07E00288638 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D27606A92C514F77002D2A14 /* DatadogLogs in Frameworks */,
+ D27606AF2C514F77002D2A14 /* DatadogTrace in Frameworks */,
+ D294E9402D0880EB009582F3 /* CatalogSwiftUI.framework in Frameworks */,
+ D27606AD2C514F77002D2A14 /* DatadogSessionReplay in Frameworks */,
+ D23DD32D2C58D80C00B90C4C /* DatadogBenchmarks in Frameworks */,
+ D231DC372C73355800F3F66C /* CatalogUIKit.framework in Frameworks */,
+ D27606AB2C514F77002D2A14 /* DatadogRUM in Frameworks */,
+ D27606A72C514F77002D2A14 /* DatadogCore in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 86252B182D818DFB0098FAEF /* Trace */ = {
+ isa = PBXGroup;
+ children = (
+ 86252B192D818E1F0098FAEF /* UI */,
+ 86252B1A2D818E360098FAEF /* TraceScenario.swift */,
+ );
+ path = Trace;
+ sourceTree = "";
+ };
+ 86252B192D818E1F0098FAEF /* UI */ = {
+ isa = PBXGroup;
+ children = (
+ 86252B1C2D8190DA0098FAEF /* TraceContentView.swift */,
+ );
+ path = UI;
+ sourceTree = "";
+ };
+ 864917792D88759A00761363 /* RUMManual */ = {
+ isa = PBXGroup;
+ children = (
+ 8649177A2D8875A800761363 /* UI */,
+ 8649177E2D8875D100761363 /* RUMManualScenario.swift */,
+ );
+ path = RUMManual;
+ sourceTree = "";
+ };
+ 8649177A2D8875A800761363 /* UI */ = {
+ isa = PBXGroup;
+ children = (
+ 8649177C2D8875C300761363 /* RUMManualContentView.swift */,
+ );
+ path = UI;
+ sourceTree = "";
+ };
+ 868DA2ED2D706ED1007D20D5 /* UI */ = {
+ isa = PBXGroup;
+ children = (
+ 868DA2EB2D706E61007D20D5 /* LogsCustomContentView.swift */,
+ );
+ path = UI;
+ sourceTree = "";
+ };
+ D231DC322C73355800F3F66C /* CatalogUIKit */ = {
+ isa = PBXGroup;
+ children = (
+ D256FB522C737F5800377260 /* LICENSE */,
+ D231DC412C73356D00F3F66C /* ActivityIndicatorViewController.storyboard */,
+ D231DC422C73356D00F3F66C /* ActivityIndicatorViewController.swift */,
+ D231DC442C73356D00F3F66C /* AlertControllerViewController.storyboard */,
+ D231DC452C73356D00F3F66C /* AlertControllerViewController.swift */,
+ D231DC472C73356D00F3F66C /* Assets.xcassets */,
+ D231DC482C73356D00F3F66C /* BaseTableViewController.swift */,
+ D231DC4A2C73356D00F3F66C /* ButtonViewController.storyboard */,
+ D231DC4B2C73356D00F3F66C /* ButtonViewController.swift */,
+ D231DC4C2C73356D00F3F66C /* ButtonViewController+Configs.swift */,
+ D231DC4D2C73356D00F3F66C /* CaseElement.swift */,
+ D231DC4F2C73356D00F3F66C /* ColorPickerViewController.storyboard */,
+ D231DC502C73356D00F3F66C /* ColorPickerViewController.swift */,
+ D231DC522C73356D00F3F66C /* content.html */,
+ D231DC542C73356D00F3F66C /* Credits.rtf */,
+ D231DC562C73356D00F3F66C /* CustomPageControlViewController.storyboard */,
+ D231DC572C73356D00F3F66C /* CustomPageControlViewController.swift */,
+ D231DC592C73356D00F3F66C /* CustomSearchBarViewController.storyboard */,
+ D231DC5A2C73356D00F3F66C /* CustomSearchBarViewController.swift */,
+ D231DC5C2C73356D00F3F66C /* CustomToolbarViewController.storyboard */,
+ D231DC5D2C73356D00F3F66C /* CustomToolbarViewController.swift */,
+ D231DC5F2C73356D00F3F66C /* DatePickerController.storyboard */,
+ D231DC602C73356D00F3F66C /* DatePickerController.swift */,
+ D231DC622C73356D00F3F66C /* DefaultPageControlViewController.storyboard */,
+ D231DC632C73356D00F3F66C /* DefaultPageControlViewController.swift */,
+ D231DC652C73356D00F3F66C /* DefaultSearchBarViewController.storyboard */,
+ D231DC662C73356D00F3F66C /* DefaultSearchBarViewController.swift */,
+ D231DC682C73356D00F3F66C /* DefaultToolbarViewController.storyboard */,
+ D231DC692C73356D00F3F66C /* DefaultToolbarViewController.swift */,
+ D231DC6B2C73356D00F3F66C /* FontPickerViewController.storyboard */,
+ D231DC6C2C73356D00F3F66C /* FontPickerViewController.swift */,
+ D231DC6E2C73356D00F3F66C /* ImagePickerViewController.storyboard */,
+ D231DC6F2C73356D00F3F66C /* ImagePickerViewController.swift */,
+ D231DC712C73356D00F3F66C /* ImageViewController.storyboard */,
+ D231DC722C73356D00F3F66C /* ImageViewController.swift */,
+ D231DC782C73356D00F3F66C /* Localizable.strings */,
+ D231DC7A2C73356D00F3F66C /* Main.storyboard */,
+ D231DC7C2C73356D00F3F66C /* MenuButtonViewController.storyboard */,
+ D231DC7D2C73356D00F3F66C /* MenuButtonViewController.swift */,
+ D231DC7E2C73356D00F3F66C /* OutlineViewController.swift */,
+ D231DC802C73356D00F3F66C /* PickerViewController.storyboard */,
+ D231DC812C73356D00F3F66C /* PickerViewController.swift */,
+ D231DC832C73356D00F3F66C /* PointerInteractionButtonViewController.storyboard */,
+ D231DC842C73356D00F3F66C /* PointerInteractionButtonViewController.swift */,
+ D231DC862C73356D00F3F66C /* ProgressViewController.storyboard */,
+ D231DC872C73356D00F3F66C /* ProgressViewController.swift */,
+ D231DC8A2C73356D00F3F66C /* SegmentedControlViewController.storyboard */,
+ D231DC8B2C73356D00F3F66C /* SegmentedControlViewController.swift */,
+ D231DC8D2C73356D00F3F66C /* SliderViewController.storyboard */,
+ D231DC8E2C73356D00F3F66C /* SliderViewController.swift */,
+ D231DC902C73356D00F3F66C /* StackViewController.storyboard */,
+ D231DC912C73356D00F3F66C /* StackViewController.swift */,
+ D231DC932C73356D00F3F66C /* StepperViewController.storyboard */,
+ D231DC942C73356D00F3F66C /* StepperViewController.swift */,
+ D231DC962C73356D00F3F66C /* SwitchViewController.storyboard */,
+ D231DC972C73356D00F3F66C /* SwitchViewController.swift */,
+ D231DC992C73356D00F3F66C /* SymbolViewController.storyboard */,
+ D231DC9A2C73356D00F3F66C /* SymbolViewController.swift */,
+ D231DC9C2C73356D00F3F66C /* TextFieldViewController.storyboard */,
+ D231DC9D2C73356D00F3F66C /* TextFieldViewController.swift */,
+ D231DC9F2C73356D00F3F66C /* TextViewController.storyboard */,
+ D231DCA02C73356D00F3F66C /* TextViewController.swift */,
+ D231DCA22C73356D00F3F66C /* TintedToolbarViewController.storyboard */,
+ D231DCA32C73356D00F3F66C /* TintedToolbarViewController.swift */,
+ D231DCA72C73356D00F3F66C /* VisualEffectViewController.storyboard */,
+ D231DCA82C73356D00F3F66C /* VisualEffectViewController.swift */,
+ D231DCAA2C73356D00F3F66C /* WebViewController.storyboard */,
+ D231DCAB2C73356D00F3F66C /* WebViewController.swift */,
+ D231DCF82C7342D500F3F66C /* ModuleBundle.swift */,
+ );
+ path = CatalogUIKit;
+ sourceTree = "";
+ };
+ 86FA74242D89C34700F69130 /* UI */ = {
+ isa = PBXGroup;
+ children = (
+ 868DA2F62D71DD8A007D20D5 /* LogsHeavyTrafficContentView.swift */,
+ );
+ path = UI;
+ sourceTree = "";
+ };
+ 86FA74252D89C42200F69130 /* SessionReplaySwiftUI */ = {
+ isa = PBXGroup;
+ children = (
+ D294EA322D088377009582F3 /* SessionReplaySwiftUIScenario.swift */,
+ );
+ path = SessionReplaySwiftUI;
+ sourceTree = "";
+ };
+ 86FA74262D89C44700F69130 /* RUMAuto */ = {
+ isa = PBXGroup;
+ children = (
+ 86FBEDDE2D8C51D3005CFCC4 /* Core */,
+ 86FBEDB92D8C25E9005CFCC4 /* Models */,
+ 86FA74272D89C45800F69130 /* UI */,
+ 86FA742A2D89C49400F69130 /* RUMAutoScenario.swift */,
+ );
+ path = RUMAuto;
+ sourceTree = "";
+ };
+ 86FA74272D89C45800F69130 /* UI */ = {
+ isa = PBXGroup;
+ children = (
+ 86FBEDBF2D8C2648005CFCC4 /* Shared */,
+ 86FBEDBA2D8C25F3005CFCC4 /* Characters */,
+ 86FBEDBC2D8C260E005CFCC4 /* Locations */,
+ 86FBEDBD2D8C261A005CFCC4 /* Episodes */,
+ 86FBEDBE2D8C2624005CFCC4 /* Docs */,
+ 86FA742C2D89C4B800F69130 /* RUMAutoContentView.swift */,
+ );
+ path = UI;
+ sourceTree = "";
+ };
+ 86FBEDB32D8C248A005CFCC4 /* RUM */ = {
+ isa = PBXGroup;
+ children = (
+ 864917792D88759A00761363 /* RUMManual */,
+ 86FA74262D89C44700F69130 /* RUMAuto */,
+ );
+ path = RUM;
+ sourceTree = "";
+ };
+ 86FBEDB52D8C24A9005CFCC4 /* LogsCustom */ = {
+ isa = PBXGroup;
+ children = (
+ 868DA2ED2D706ED1007D20D5 /* UI */,
+ 868DA2E52D706456007D20D5 /* LogsCustomScenario.swift */,
+ );
+ path = "LogsCustom ";
+ sourceTree = "";
+ };
+ 86FBEDB62D8C24A9005CFCC4 /* LogsHeavyTraffic */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA74242D89C34700F69130 /* UI */,
+ 868DA2F42D71DD47007D20D5 /* LogsHeavyTrafficScenario.swift */,
+ );
+ path = LogsHeavyTraffic;
+ sourceTree = "";
+ };
+ 86FBEDB72D8C24A9005CFCC4 /* Logs */ = {
+ isa = PBXGroup;
+ children = (
+ 86FBEDB52D8C24A9005CFCC4 /* LogsCustom */,
+ 86FBEDB62D8C24A9005CFCC4 /* LogsHeavyTraffic */,
+ 868DA2F82D71E622007D20D5 /* LogsUtils.swift */,
+ );
+ path = Logs;
+ sourceTree = "";
+ };
+ 86FBEDB82D8C24D8005CFCC4 /* SessionReplayUIKit */ = {
+ isa = PBXGroup;
+ children = (
+ D27606982C514F37002D2A14 /* SessionReplayScenario.swift */,
+ );
+ path = SessionReplayUIKit;
+ sourceTree = "";
+ };
+ 86FBEDB92D8C25E9005CFCC4 /* Models */ = {
+ isa = PBXGroup;
+ children = (
+ 86FBEDC12D8C273C005CFCC4 /* CommonTypes.swift */,
+ 86FBEDC02D8C273C005CFCC4 /* CharacterModels.swift */,
+ 86FBEDC32D8C273C005CFCC4 /* LocationModels.swift */,
+ 86FBEDC22D8C273C005CFCC4 /* EpisodeModels.swift */,
+ );
+ path = Models;
+ sourceTree = "";
+ };
+ 86FBEDBA2D8C25F3005CFCC4 /* Characters */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA742E2D89CBF100F69130 /* CharactersView.swift */,
+ 86FBEDC82D8C29C3005CFCC4 /* CharacterDetailView.swift */,
+ 86FBEDC92D8C29C3005CFCC4 /* CharacterListItem.swift */,
+ 86FBEDCA2D8C29C3005CFCC4 /* InfoRow.swift */,
+ 86FBEDCB2D8C29C3005CFCC4 /* StatusBadge.swift */,
+ );
+ path = Characters;
+ sourceTree = "";
+ };
+ 86FBEDBC2D8C260E005CFCC4 /* Locations */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA743C2D8AD6AE00F69130 /* LocationsView.storyboard */,
+ 86FA74302D89CC0400F69130 /* LocationsView.swift */,
+ 86FA743E2D8AE85B00F69130 /* LocationsViewController.swift */,
+ 86FBEDD02D8C2B04005CFCC4 /* LocationCollectionViewCell.swift */,
+ 86FA74402D8AF38F00F69130 /* LocationDetailViewController.swift */,
+ );
+ path = Locations;
+ sourceTree = "";
+ };
+ 86FBEDBD2D8C261A005CFCC4 /* Episodes */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA74322D89CC1500F69130 /* EpisodesView.swift */,
+ 86FBEDD22D8C4348005CFCC4 /* EpisodeListItem.swift */,
+ 86FBEDDA2D8C491E005CFCC4 /* EpisodeDetailView.storyboard */,
+ 86FBEDDB2D8C491E005CFCC4 /* EpisodeDetailViewController.swift */,
+ 86FBEDD42D8C436D005CFCC4 /* EpisodeDetailHostingController.swift */,
+ );
+ path = Episodes;
+ sourceTree = "";
+ };
+ 86FBEDBE2D8C2624005CFCC4 /* Docs */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA74342D89CC2400F69130 /* DocsView.swift */,
+ );
+ path = Docs;
+ sourceTree = "";
+ };
+ 86FBEDBF2D8C2648005CFCC4 /* Shared */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA74462D8B128C00F69130 /* CharacterCollectionViewCell.swift */,
+ );
+ path = Shared;
+ sourceTree = "";
+ };
+ 86FBEDDE2D8C51D3005CFCC4 /* Core */ = {
+ isa = PBXGroup;
+ children = (
+ 86FA743A2D8AC3C900F69130 /* Utils.swift */,
+ 86FA74382D8AC2C700F69130 /* RickMortyService.swift */,
+ );
+ path = Core;
+ sourceTree = "";
+ };
+ D256FB522C737F5800377260 /* LICENSE */ = {
+ isa = PBXGroup;
+ children = (
+ D231DCFA2C735FC200F3F66C /* LICENSE.txt */,
+ );
+ path = LICENSE;
+ sourceTree = "";
+ };
+ D27606992C514F37002D2A14 /* SessionReplay */ = {
+ isa = PBXGroup;
+ children = (
+ 86FBEDB82D8C24D8005CFCC4 /* SessionReplayUIKit */,
+ 86FA74252D89C42200F69130 /* SessionReplaySwiftUI */,
+ );
+ path = SessionReplay;
+ sourceTree = "";
+ };
+ D276069C2C514F37002D2A14 /* Scenarios */ = {
+ isa = PBXGroup;
+ children = (
+ D276069B2C514F37002D2A14 /* Scenario.swift */,
+ D24BFD462C6B916B00AB9604 /* SyntheticScenario.swift */,
+ D27606992C514F37002D2A14 /* SessionReplay */,
+ 86FBEDB72D8C24A9005CFCC4 /* Logs */,
+ 86252B182D818DFB0098FAEF /* Trace */,
+ 86FBEDB32D8C248A005CFCC4 /* RUM */,
+ );
+ path = Scenarios;
+ sourceTree = "";
+ };
+ D27606B52C526908002D2A14 /* xcconfigs */ = {
+ isa = PBXGroup;
+ children = (
+ D27606B22C526908002D2A14 /* Benchmarks.local.xcconfig */,
+ D27606B32C526908002D2A14 /* Runner.xcconfig */,
+ D27606B42C526908002D2A14 /* Synthetics.xcconfig */,
+ );
+ path = xcconfigs;
+ sourceTree = "";
+ };
+ D294E9482D08813D009582F3 /* CatalogSwiftUI */ = {
+ isa = PBXGroup;
+ children = (
+ D294E94A2D088154009582F3 /* LICENSE */,
+ D294E94B2D088257009582F3 /* Assets.xcassets */,
+ D294E94C2D088257009582F3 /* ContentView.swift */,
+ D294E94D2D088257009582F3 /* ContenView+SectionsBuilding.swift */,
+ D294E94F2D088257009582F3 /* MenuSection.swift */,
+ D294EA342D08850F009582F3 /* ModuleBundle.swift */,
+ D26DD6E62D0C774000D96148 /* DatadogMonitor.swift */,
+ D28130D32D0C6A2300A3824C /* AnyViewModifier.swift */,
+ D294E9512D088257009582F3 /* Preview Content */,
+ D294E9C82D088257009582F3 /* Views */,
+ );
+ path = CatalogSwiftUI;
+ sourceTree = "";
+ };
+ D294E9512D088257009582F3 /* Preview Content */ = {
+ isa = PBXGroup;
+ children = (
+ D294E9502D088257009582F3 /* Preview Assets.xcassets */,
+ );
+ path = "Preview Content";
+ sourceTree = "";
+ };
+ D294E9592D088257009582F3 /* Composed Components */ = {
+ isa = PBXGroup;
+ children = (
+ D294E9532D088257009582F3 /* CollectionsViews.swift */,
+ D294E9542D088257009582F3 /* CommonlyUsedViews.swift */,
+ D294E9552D088257009582F3 /* HeaderImageTitleSubtitleView.swift */,
+ D294E9562D088257009582F3 /* ImageWithOverlayView.swift */,
+ D294E9572D088257009582F3 /* StackedCardsView.swift */,
+ D294E9582D088257009582F3 /* TitleSubtitleIconView.swift */,
+ );
+ path = "Composed Components";
+ sourceTree = "";
+ };
+ D294E95C2D088257009582F3 /* Model */ = {
+ isa = PBXGroup;
+ children = (
+ D294E95A2D088257009582F3 /* Landmark.swift */,
+ D294E95B2D088257009582F3 /* ModelData.swift */,
+ );
+ path = Model;
+ sourceTree = "";
+ };
+ D294E95E2D088257009582F3 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ D294E95D2D088257009582F3 /* landmarkData.json */,
+ );
+ path = Resources;
+ sourceTree = "