diff --git a/.github/actions/uitests/action.yml b/.github/actions/uitests/action.yml index 2560d1ec1..3037a6834 100644 --- a/.github/actions/uitests/action.yml +++ b/.github/actions/uitests/action.yml @@ -2,6 +2,10 @@ name: Run UI Tests description: Execute UI tests and collect artifacts if failure inputs: + xcode-version: + description: 'Xcode version to use' + required: false + default: '16.4' platform: description: 'Platform to test (ios or macos)' required: true @@ -20,16 +24,47 @@ outputs: runs: using: composite steps: + - name: Setup Xcode + uses: OpenSwiftUIProject/setup-xcode@v2 + with: + xcode-version: ${{ inputs.xcode-version }} + + - name: Set up mise + uses: jdx/mise-action@v2 + with: + install: false + cache: false + + - name: Install Tuist + run: | + cd Example + mise trust mise.toml + mise install + tuist version + shell: bash + + - name: Set up build environment + run: Scripts/CI/darwin_setup_build.sh + shell: bash + - name: Install xcbeautify shell: bash run: brew install xcbeautify + - name: Generate Example project + shell: bash + run: | + cd Example + mise exec -- tuist install + mise exec -- tuist generate --no-open + - name: Record baseline images with SwiftUI shell: bash run: | cd Example set -o pipefail NSUnbufferedIO=YES xcodebuild test \ + -workspace Example.xcworkspace \ -scheme SUI_UITests \ -destination "${{ inputs.destination }}" \ -skipMacroValidation \ @@ -45,6 +80,7 @@ runs: rm -rf /tmp/${{ inputs.platform }}-uitest.xcresult set -o pipefail NSUnbufferedIO=YES xcodebuild test \ + -workspace Example.xcworkspace \ -scheme OSUI_UITests \ -destination "${{ inputs.destination }}" \ -skipMacroValidation \ diff --git a/.github/workflows/uitests.yml b/.github/workflows/uitests.yml index 677c6f30b..f330b00fa 100644 --- a/.github/workflows/uitests.yml +++ b/.github/workflows/uitests.yml @@ -172,17 +172,11 @@ jobs: with: repository: ${{ needs.prepare_issue_comment.outputs.repository || github.repository }} ref: ${{ needs.prepare_issue_comment.outputs.ref || github.sha }} - - name: Setup Xcode - uses: OpenSwiftUIProject/setup-xcode@v2 - with: - xcode-version: ${{ matrix.xcode-version }} - - name: Set up build environment - run: Scripts/CI/darwin_setup_build.sh - shell: bash - name: Run UI Tests id: run-tests uses: ./.github/actions/uitests with: + xcode-version: ${{ matrix.xcode-version }} platform: ios destination: "platform=iOS Simulator,OS=${{ matrix.ios-version }},name=${{ matrix.ios-simulator-name }}" artifact-name: ios-uitest-snapshots-${{ matrix.ios-version }} @@ -267,17 +261,11 @@ jobs: with: repository: ${{ needs.prepare_issue_comment.outputs.repository || github.repository }} ref: ${{ needs.prepare_issue_comment.outputs.ref || github.sha }} - - name: Setup Xcode - uses: OpenSwiftUIProject/setup-xcode@v2 - with: - xcode-version: ${{ matrix.xcode-version }} - - name: Set up build environment - run: Scripts/CI/darwin_setup_build.sh - shell: bash - name: Run UI Tests id: run-tests uses: ./.github/actions/uitests with: + xcode-version: ${{ matrix.xcode-version }} platform: macos destination: "platform=macOS" artifact-name: macos-uitest-snapshots diff --git a/Example/.gitignore b/Example/.gitignore new file mode 100644 index 000000000..c7dd40ac2 --- /dev/null +++ b/Example/.gitignore @@ -0,0 +1,4 @@ +Derived/ +Example.xcodeproj/ +Example.xcworkspace/ +Tuist/.build/ diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj deleted file mode 100644 index 5a4e29f51..000000000 --- a/Example/Example.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1435 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 74; - objects = { - -/* Begin PBXBuildFile section */ - 27186AE32D538A76009E05F9 /* AttributeGraph.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D12D2842740010502F /* AttributeGraph.xcframework */; }; - 273F46082F673F8F00F3379F /* CoreSVG.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F46072F673F8F00F3379F /* CoreSVG.xcframework */; }; - 273F48CA2F6743CC00F3379F /* CoreSVG.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F46072F673F8F00F3379F /* CoreSVG.xcframework */; }; - 273F48CD2F6743D300F3379F /* CoreSVG.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F46072F673F8F00F3379F /* CoreSVG.xcframework */; }; - 273F48D02F6743D900F3379F /* CoreSVG.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F46072F673F8F00F3379F /* CoreSVG.xcframework */; }; - 278EF52D2E2272F2009C32EB /* Equatable in Frameworks */ = {isa = PBXBuildFile; productRef = 278EF52C2E2272F2009C32EB /* Equatable */; }; - 278EF52F2E227304009C32EB /* Equatable in Frameworks */ = {isa = PBXBuildFile; productRef = 278EF52E2E227304009C32EB /* Equatable */; }; - 279284972DFF136E00234D64 /* AttributeGraph.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D12D2842740010502F /* AttributeGraph.xcframework */; }; - 2792849F2DFF137400234D64 /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 2792849E2DFF137400234D64 /* SnapshotTesting */; }; - 279FED052DF4566D00320390 /* AttributeGraph.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D12D2842740010502F /* AttributeGraph.xcframework */; }; - 279FED0D2DF4567B00320390 /* OpenSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 279FED0C2DF4567B00320390 /* OpenSwiftUI */; }; - 27AF22B22E758F2900D534AB /* CoreUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27EE91722DD0C753006C85FD /* CoreUI.xcframework */; }; - 27AF22B32E758F2900D534AB /* CoreUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27EE91722DD0C753006C85FD /* CoreUI.xcframework */; }; - 27AF22B42E758F2900D534AB /* CoreUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27EE91722DD0C753006C85FD /* CoreUI.xcframework */; }; - 27AF22B52E758F2900D534AB /* CoreUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27EE91722DD0C753006C85FD /* CoreUI.xcframework */; }; - 27AF22B62E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27AF22B12E758F0F00D534AB /* BacklightServices.xcframework */; platformFilters = (ios, xros, ); }; - 27AF22B72E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27AF22B12E758F0F00D534AB /* BacklightServices.xcframework */; platformFilters = (ios, xros, ); }; - 27AF22B82E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27AF22B12E758F0F00D534AB /* BacklightServices.xcframework */; platformFilters = (ios, xros, ); }; - 27AF22B92E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27AF22B12E758F0F00D534AB /* BacklightServices.xcframework */; platformFilters = (ios, xros, ); }; - 27AF22BA2E758F3700D534AB /* RenderBox.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D42D2842810010502F /* RenderBox.xcframework */; }; - 27AF22BB2E758F3700D534AB /* RenderBox.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D42D2842810010502F /* RenderBox.xcframework */; }; - 27AF22BC2E758F3700D534AB /* RenderBox.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D42D2842810010502F /* RenderBox.xcframework */; }; - 27AF22BD2E758F3700D534AB /* RenderBox.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D42D2842810010502F /* RenderBox.xcframework */; }; - 27BB94442F5D5FE800B2AA0A /* Equatable in Frameworks */ = {isa = PBXBuildFile; productRef = 27BB94432F5D5FE800B2AA0A /* Equatable */; }; - 27BB94462F5D5FEE00B2AA0A /* Equatable in Frameworks */ = {isa = PBXBuildFile; productRef = 27BB94452F5D5FEE00B2AA0A /* Equatable */; }; - 27CD0B5F2AFC8DA7003665EB /* OpenSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 27CD0B5E2AFC8DA7003665EB /* OpenSwiftUI */; }; - 27D49E0E2BA60AF600F6E2E2 /* OpenSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 27D49E0D2BA60AF600F6E2E2 /* OpenSwiftUI */; }; - 27E28F0B2F5D5531007F8CF5 /* SFSymbols.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E28F0A2F5D5531007F8CF5 /* SFSymbols.xcframework */; }; - 27E28F0E2F5D553F007F8CF5 /* SFSymbols.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E28F0A2F5D5531007F8CF5 /* SFSymbols.xcframework */; }; - 27E28F112F5D5547007F8CF5 /* SFSymbols.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E28F0A2F5D5531007F8CF5 /* SFSymbols.xcframework */; }; - 27E28F142F5D5556007F8CF5 /* SFSymbols.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E28F0A2F5D5531007F8CF5 /* SFSymbols.xcframework */; }; - 27E6C4D32D2842740010502F /* AttributeGraph.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27E6C4D12D2842740010502F /* AttributeGraph.xcframework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 279080A32E8E600A0082B5B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 27CD0B412AFC8D37003665EB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 275751E22DEE1441003E467C; - remoteInfo = TestingHost; - }; - 27DC9A772F2017EA00F8F371 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 27CD0B412AFC8D37003665EB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 27D49DF72BA604FB00F6E2E2; - remoteInfo = HostingExample; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 271D81642BB1E8E300A6D543 /* OpenAttributeGraph */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = OpenAttributeGraph; path = ../../OpenAttributeGraph; sourceTree = ""; }; - 273F46072F673F8F00F3379F /* CoreSVG.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = CoreSVG.xcframework; path = ../../DarwinPrivateFrameworks/CoreSVG/2024/CoreSVG.xcframework; sourceTree = ""; }; - 275751E32DEE1441003E467C /* TestingHost.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestingHost.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 279080912E8E5E7B0082B5B6 /* Testing.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Testing.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/Testing.framework; sourceTree = DEVELOPER_DIR; }; - 279283B92DFF11CE00234D64 /* OpenSwiftUIUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenSwiftUIUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 27AF22B12E758F0F00D534AB /* BacklightServices.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = BacklightServices.xcframework; path = ../../DarwinPrivateFrameworks/BLS/2024/BacklightServices.xcframework; sourceTree = ""; }; - 27B7FC802BB31FF500272BA5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 27CD0B492AFC8D37003665EB /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 27CD0B612AFC8E0E003665EB /* OpenSwiftUI */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = OpenSwiftUI; path = ..; sourceTree = ""; }; - 27D49DF82BA604FB00F6E2E2 /* HostingExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HostingExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 27E28F0A2F5D5531007F8CF5 /* SFSymbols.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SFSymbols.xcframework; path = ../../DarwinPrivateFrameworks/SFSymbols/2024/SFSymbols.xcframework; sourceTree = ""; }; - 27E6C4D02D2842530010502F /* OpenRenderBox */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = OpenRenderBox; path = ../../OpenRenderBox; sourceTree = ""; }; - 27E6C4D12D2842740010502F /* AttributeGraph.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = AttributeGraph.xcframework; path = ../../DarwinPrivateFrameworks/AG/2024/AttributeGraph.xcframework; sourceTree = ""; }; - 27E6C4D42D2842810010502F /* RenderBox.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = RenderBox.xcframework; path = ../../DarwinPrivateFrameworks/RB/2024/RenderBox.xcframework; sourceTree = ""; }; - 27E6C4F72D2844470010502F /* DarwinPrivateFrameworks */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = DarwinPrivateFrameworks; path = ../../DarwinPrivateFrameworks; sourceTree = ""; }; - 27EE91722DD0C753006C85FD /* CoreUI.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = CoreUI.xcframework; path = ../../DarwinPrivateFrameworks/CoreUI/2024/CoreUI.xcframework; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 275751CC2DEE136C003E467C /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Info.plist, - ); - platformFiltersByRelativePath = { - /Localized/LaunchScreen.storyboard = ( - ios, - ); - /Localized/Main.storyboard = ( - ios, - xros, - ); - SceneDelegate.swift = ( - ios, - xros, - ); - }; - target = 27D49DF72BA604FB00F6E2E2 /* HostingExample */; - }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ - -/* Begin PBXFileSystemSynchronizedRootGroup section */ - 275751AF2DEE136A003E467C /* Example */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Example; sourceTree = ""; }; - 275751C12DEE136C003E467C /* HostingExample */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (275751CC2DEE136C003E467C /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = HostingExample; sourceTree = ""; }; - 275751E42DEE1441003E467C /* TestingHost */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = TestingHost; sourceTree = ""; }; - 275751F62DEE1456003E467C /* OpenSwiftUIUITests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = OpenSwiftUIUITests; sourceTree = ""; }; - 279749962F6EBE3B00280B23 /* Modules */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Modules; sourceTree = ""; }; - 279FEC572DF450D200320390 /* ReferenceImages */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = ReferenceImages; sourceTree = ""; }; - 27E6C4F62D2842D80010502F /* Configurations */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); name = Configurations; path = ../Configurations; sourceTree = ""; }; - 27FFF0422E08850C0060A4DA /* Shared */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Shared; sourceTree = ""; }; -/* End PBXFileSystemSynchronizedRootGroup section */ - -/* Begin PBXFrameworksBuildPhase section */ - 275751E02DEE1441003E467C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 279FED0D2DF4567B00320390 /* OpenSwiftUI in Frameworks */, - 27AF22B82E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */, - 27BB94442F5D5FE800B2AA0A /* Equatable in Frameworks */, - 273F48CD2F6743D300F3379F /* CoreSVG.xcframework in Frameworks */, - 27E28F112F5D5547007F8CF5 /* SFSymbols.xcframework in Frameworks */, - 27AF22B42E758F2900D534AB /* CoreUI.xcframework in Frameworks */, - 27AF22BC2E758F3700D534AB /* RenderBox.xcframework in Frameworks */, - 279FED052DF4566D00320390 /* AttributeGraph.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 279283B62DFF11CE00234D64 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2792849F2DFF137400234D64 /* SnapshotTesting in Frameworks */, - 27AF22B92E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */, - 27BB94462F5D5FEE00B2AA0A /* Equatable in Frameworks */, - 273F48D02F6743D900F3379F /* CoreSVG.xcframework in Frameworks */, - 27E28F142F5D5556007F8CF5 /* SFSymbols.xcframework in Frameworks */, - 27AF22B52E758F2900D534AB /* CoreUI.xcframework in Frameworks */, - 27AF22BD2E758F3700D534AB /* RenderBox.xcframework in Frameworks */, - 279284972DFF136E00234D64 /* AttributeGraph.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 27CD0B462AFC8D37003665EB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 27AF22B22E758F2900D534AB /* CoreUI.xcframework in Frameworks */, - 27AF22B62E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */, - 27E28F0B2F5D5531007F8CF5 /* SFSymbols.xcframework in Frameworks */, - 273F46082F673F8F00F3379F /* CoreSVG.xcframework in Frameworks */, - 27CD0B5F2AFC8DA7003665EB /* OpenSwiftUI in Frameworks */, - 278EF52F2E227304009C32EB /* Equatable in Frameworks */, - 27E6C4D32D2842740010502F /* AttributeGraph.xcframework in Frameworks */, - 27AF22BA2E758F3700D534AB /* RenderBox.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 27D49DF52BA604FB00F6E2E2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 27AF22B32E758F2900D534AB /* CoreUI.xcframework in Frameworks */, - 27AF22B72E758F2E00D534AB /* BacklightServices.xcframework in Frameworks */, - 27E28F0E2F5D553F007F8CF5 /* SFSymbols.xcframework in Frameworks */, - 273F48CA2F6743CC00F3379F /* CoreSVG.xcframework in Frameworks */, - 27D49E0E2BA60AF600F6E2E2 /* OpenSwiftUI in Frameworks */, - 278EF52D2E2272F2009C32EB /* Equatable in Frameworks */, - 27186AE32D538A76009E05F9 /* AttributeGraph.xcframework in Frameworks */, - 27AF22BB2E758F3700D534AB /* RenderBox.xcframework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 27CD0B402AFC8D37003665EB = { - isa = PBXGroup; - children = ( - 27E6C4F62D2842D80010502F /* Configurations */, - 27B7FC802BB31FF500272BA5 /* README.md */, - 27E6C4F72D2844470010502F /* DarwinPrivateFrameworks */, - 27E6C4D02D2842530010502F /* OpenRenderBox */, - 271D81642BB1E8E300A6D543 /* OpenAttributeGraph */, - 27CD0B612AFC8E0E003665EB /* OpenSwiftUI */, - 27FFF0422E08850C0060A4DA /* Shared */, - 275751AF2DEE136A003E467C /* Example */, - 275751C12DEE136C003E467C /* HostingExample */, - 275751E42DEE1441003E467C /* TestingHost */, - 279749962F6EBE3B00280B23 /* Modules */, - 275751F62DEE1456003E467C /* OpenSwiftUIUITests */, - 279FEC572DF450D200320390 /* ReferenceImages */, - 27CD0B4A2AFC8D37003665EB /* Products */, - 27D49E0C2BA60AF600F6E2E2 /* Frameworks */, - ); - sourceTree = ""; - }; - 27CD0B4A2AFC8D37003665EB /* Products */ = { - isa = PBXGroup; - children = ( - 27CD0B492AFC8D37003665EB /* Example.app */, - 27D49DF82BA604FB00F6E2E2 /* HostingExample.app */, - 275751E32DEE1441003E467C /* TestingHost.app */, - 279283B92DFF11CE00234D64 /* OpenSwiftUIUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 27D49E0C2BA60AF600F6E2E2 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 273F46072F673F8F00F3379F /* CoreSVG.xcframework */, - 27E28F0A2F5D5531007F8CF5 /* SFSymbols.xcframework */, - 279080912E8E5E7B0082B5B6 /* Testing.framework */, - 27AF22B12E758F0F00D534AB /* BacklightServices.xcframework */, - 27EE91722DD0C753006C85FD /* CoreUI.xcframework */, - 27E6C4D42D2842810010502F /* RenderBox.xcframework */, - 27E6C4D12D2842740010502F /* AttributeGraph.xcframework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 275751E22DEE1441003E467C /* TestingHost */ = { - isa = PBXNativeTarget; - buildConfigurationList = 275751EC2DEE1442003E467C /* Build configuration list for PBXNativeTarget "TestingHost" */; - buildPhases = ( - 275751DF2DEE1441003E467C /* Sources */, - 275751E02DEE1441003E467C /* Frameworks */, - 275751E12DEE1441003E467C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - 275751E42DEE1441003E467C /* TestingHost */, - 27FFF0422E08850C0060A4DA /* Shared */, - ); - name = TestingHost; - packageProductDependencies = ( - 279FED0C2DF4567B00320390 /* OpenSwiftUI */, - 27BB94432F5D5FE800B2AA0A /* Equatable */, - ); - productName = TestingHost; - productReference = 275751E32DEE1441003E467C /* TestingHost.app */; - productType = "com.apple.product-type.application"; - }; - 279283B82DFF11CE00234D64 /* OpenSwiftUIUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 279283BF2DFF11CE00234D64 /* Build configuration list for PBXNativeTarget "OpenSwiftUIUITests" */; - buildPhases = ( - 279283B52DFF11CE00234D64 /* Sources */, - 279283B62DFF11CE00234D64 /* Frameworks */, - 279283B72DFF11CE00234D64 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 279080A42E8E600A0082B5B6 /* PBXTargetDependency */, - 27DC9A782F2017EA00F8F371 /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - 275751F62DEE1456003E467C /* OpenSwiftUIUITests */, - ); - name = OpenSwiftUIUITests; - packageProductDependencies = ( - 2792849E2DFF137400234D64 /* SnapshotTesting */, - 27BB94452F5D5FEE00B2AA0A /* Equatable */, - ); - productName = OpenSwiftUIUITests; - productReference = 279283B92DFF11CE00234D64 /* OpenSwiftUIUITests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 27CD0B482AFC8D37003665EB /* Example */ = { - isa = PBXNativeTarget; - buildConfigurationList = 27CD0B582AFC8D38003665EB /* Build configuration list for PBXNativeTarget "Example" */; - buildPhases = ( - 27CD0B452AFC8D37003665EB /* Sources */, - 27CD0B462AFC8D37003665EB /* Frameworks */, - 27CD0B472AFC8D37003665EB /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - 275751AF2DEE136A003E467C /* Example */, - 27FFF0422E08850C0060A4DA /* Shared */, - ); - name = Example; - packageProductDependencies = ( - 27CD0B5E2AFC8DA7003665EB /* OpenSwiftUI */, - 278EF52E2E227304009C32EB /* Equatable */, - ); - productName = Example; - productReference = 27CD0B492AFC8D37003665EB /* Example.app */; - productType = "com.apple.product-type.application"; - }; - 27D49DF72BA604FB00F6E2E2 /* HostingExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 27D49E092BA604FC00F6E2E2 /* Build configuration list for PBXNativeTarget "HostingExample" */; - buildPhases = ( - 27D49DF42BA604FB00F6E2E2 /* Sources */, - 27D49DF52BA604FB00F6E2E2 /* Frameworks */, - 27D49DF62BA604FB00F6E2E2 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - 275751C12DEE136C003E467C /* HostingExample */, - 27FFF0422E08850C0060A4DA /* Shared */, - ); - name = HostingExample; - packageProductDependencies = ( - 27D49E0D2BA60AF600F6E2E2 /* OpenSwiftUI */, - 278EF52C2E2272F2009C32EB /* Equatable */, - ); - productName = HostingExample; - productReference = 27D49DF82BA604FB00F6E2E2 /* HostingExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 27CD0B412AFC8D37003665EB /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1630; - LastUpgradeCheck = 1500; - TargetAttributes = { - 275751E22DEE1441003E467C = { - CreatedOnToolsVersion = 16.3; - }; - 279283B82DFF11CE00234D64 = { - CreatedOnToolsVersion = 16.3; - TestTargetID = 275751E22DEE1441003E467C; - }; - 27CD0B482AFC8D37003665EB = { - CreatedOnToolsVersion = 15.0; - }; - 27D49DF72BA604FB00F6E2E2 = { - CreatedOnToolsVersion = 15.2; - LastSwiftMigration = 1640; - }; - }; - }; - buildConfigurationList = 27CD0B442AFC8D37003665EB /* Build configuration list for PBXProject "Example" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 27CD0B402AFC8D37003665EB; - packageReferences = ( - 275752022DEE147E003E467C /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */, - 278EF52B2E2272F2009C32EB /* XCRemoteSwiftPackageReference "equatable" */, - ); - preferredProjectObjectVersion = 56; - productRefGroup = 27CD0B4A2AFC8D37003665EB /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 27CD0B482AFC8D37003665EB /* Example */, - 27D49DF72BA604FB00F6E2E2 /* HostingExample */, - 275751E22DEE1441003E467C /* TestingHost */, - 279283B82DFF11CE00234D64 /* OpenSwiftUIUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 275751E12DEE1441003E467C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 279283B72DFF11CE00234D64 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 27CD0B472AFC8D37003665EB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 27D49DF62BA604FB00F6E2E2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 275751DF2DEE1441003E467C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 279283B52DFF11CE00234D64 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 27CD0B452AFC8D37003665EB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 27D49DF42BA604FB00F6E2E2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 279080A42E8E600A0082B5B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 275751E22DEE1441003E467C /* TestingHost */; - targetProxy = 279080A32E8E600A0082B5B6 /* PBXContainerItemProxy */; - }; - 27DC9A782F2017EA00F8F371 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 27D49DF72BA604FB00F6E2E2 /* HostingExample */; - targetProxy = 27DC9A772F2017EA00F8F371 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 272252242BB1C655009CA741 /* OpenSwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = "Shared/OpenSwiftUI-debug.xcconfig"; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - }; - name = OpenSwiftUIDebug; - }; - 272252252BB1C655009CA741 /* OpenSwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = Example.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Example/Example.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = OpenSwiftUIDebug; - }; - 272252262BB1C655009CA741 /* OpenSwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = HostingExample.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = HostingExample/Info.plist; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - REGISTER_APP_GROUPS = NO; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = OpenSwiftUIDebug; - }; - 275751ED2DEE1442003E467C /* SwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = TestingHost.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_PREVIEWS = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = SwiftUIDebug; - }; - 275751EE2DEE1442003E467C /* SwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = TestingHost.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_PREVIEWS = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = SwiftUIRelease; - }; - 275751EF2DEE1442003E467C /* OpenSwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = TestingHost.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_PREVIEWS = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = OpenSwiftUIDebug; - }; - 275751F02DEE1442003E467C /* OpenSwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = TestingHost.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_PREVIEWS = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - REGISTER_APP_GROUPS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = OpenSwiftUIRelease; - }; - 278A031C2BD6DD7200ED4DAE /* SwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = "Shared/SwiftUI-release.xcconfig"; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - }; - name = SwiftUIRelease; - }; - 278A031D2BD6DD7200ED4DAE /* SwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = Example.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Example/Example.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = SwiftUIRelease; - }; - 278A031E2BD6DD7200ED4DAE /* SwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = HostingExample.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = HostingExample/Info.plist; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - REGISTER_APP_GROUPS = NO; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = SwiftUIRelease; - }; - 278A031F2BD6DD9D00ED4DAE /* OpenSwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = "Shared/OpenSwiftUI-release.xcconfig"; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - }; - name = OpenSwiftUIRelease; - }; - 278A03202BD6DD9D00ED4DAE /* OpenSwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = Example.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Example/Example.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = OpenSwiftUIRelease; - }; - 278A03212BD6DD9D00ED4DAE /* OpenSwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = HostingExample.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = HostingExample/Info.plist; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - REGISTER_APP_GROUPS = NO; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = OpenSwiftUIRelease; - }; - 279283C02DFF11CE00234D64 /* SwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = OpenSwiftUIUITests.xcconfig; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GENERATE_INFOPLIST_FILE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestingHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TestingHost"; - }; - name = SwiftUIDebug; - }; - 279283C12DFF11CE00234D64 /* SwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = OpenSwiftUIUITests.xcconfig; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GENERATE_INFOPLIST_FILE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestingHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TestingHost"; - }; - name = SwiftUIRelease; - }; - 279283C22DFF11CE00234D64 /* OpenSwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = OpenSwiftUIUITests.xcconfig; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GENERATE_INFOPLIST_FILE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestingHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TestingHost"; - }; - name = OpenSwiftUIDebug; - }; - 279283C32DFF11CE00234D64 /* OpenSwiftUIRelease */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = OpenSwiftUIUITests.xcconfig; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GENERATE_INFOPLIST_FILE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestingHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TestingHost"; - }; - name = OpenSwiftUIRelease; - }; - 27CD0B562AFC8D38003665EB /* SwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = "Shared/SwiftUI-debug.xcconfig"; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - }; - name = SwiftUIDebug; - }; - 27CD0B592AFC8D38003665EB /* SwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = Example.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Example/Example.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; - "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; - "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - TARGETED_DEVICE_FAMILY = "1,2,7"; - }; - name = SwiftUIDebug; - }; - 27D49E0A2BA604FC00F6E2E2 /* SwiftUIDebug */ = { - isa = XCBuildConfiguration; - baseConfigurationReferenceAnchor = 27E6C4F62D2842D80010502F /* Configurations */; - baseConfigurationReferenceRelativePath = HostingExample.xcconfig; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = HostingExample/Info.plist; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - REGISTER_APP_GROUPS = NO; - SDKROOT = auto; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2,7"; - XROS_DEPLOYMENT_TARGET = 2.0; - }; - name = SwiftUIDebug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 275751EC2DEE1442003E467C /* Build configuration list for PBXNativeTarget "TestingHost" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 275751ED2DEE1442003E467C /* SwiftUIDebug */, - 275751EE2DEE1442003E467C /* SwiftUIRelease */, - 275751EF2DEE1442003E467C /* OpenSwiftUIDebug */, - 275751F02DEE1442003E467C /* OpenSwiftUIRelease */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = OpenSwiftUIDebug; - }; - 279283BF2DFF11CE00234D64 /* Build configuration list for PBXNativeTarget "OpenSwiftUIUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 279283C02DFF11CE00234D64 /* SwiftUIDebug */, - 279283C12DFF11CE00234D64 /* SwiftUIRelease */, - 279283C22DFF11CE00234D64 /* OpenSwiftUIDebug */, - 279283C32DFF11CE00234D64 /* OpenSwiftUIRelease */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = OpenSwiftUIDebug; - }; - 27CD0B442AFC8D37003665EB /* Build configuration list for PBXProject "Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27CD0B562AFC8D38003665EB /* SwiftUIDebug */, - 278A031C2BD6DD7200ED4DAE /* SwiftUIRelease */, - 272252242BB1C655009CA741 /* OpenSwiftUIDebug */, - 278A031F2BD6DD9D00ED4DAE /* OpenSwiftUIRelease */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = OpenSwiftUIDebug; - }; - 27CD0B582AFC8D38003665EB /* Build configuration list for PBXNativeTarget "Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27CD0B592AFC8D38003665EB /* SwiftUIDebug */, - 278A031D2BD6DD7200ED4DAE /* SwiftUIRelease */, - 272252252BB1C655009CA741 /* OpenSwiftUIDebug */, - 278A03202BD6DD9D00ED4DAE /* OpenSwiftUIRelease */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = OpenSwiftUIDebug; - }; - 27D49E092BA604FC00F6E2E2 /* Build configuration list for PBXNativeTarget "HostingExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27D49E0A2BA604FC00F6E2E2 /* SwiftUIDebug */, - 278A031E2BD6DD7200ED4DAE /* SwiftUIRelease */, - 272252262BB1C655009CA741 /* OpenSwiftUIDebug */, - 278A03212BD6DD9D00ED4DAE /* OpenSwiftUIRelease */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = OpenSwiftUIDebug; - }; -/* End XCConfigurationList section */ - -/* Begin XCRemoteSwiftPackageReference section */ - 275752022DEE147E003E467C /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/OpenSwiftUIProject/swift-snapshot-testing"; - requirement = { - kind = exactVersion; - version = "1.18.9-osui"; - }; - }; - 278EF52B2E2272F2009C32EB /* XCRemoteSwiftPackageReference "equatable" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/OpenSwiftUIProject/equatable.git"; - requirement = { - branch = main; - kind = branch; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - -/* Begin XCSwiftPackageProductDependency section */ - 278EF52C2E2272F2009C32EB /* Equatable */ = { - isa = XCSwiftPackageProductDependency; - package = 278EF52B2E2272F2009C32EB /* XCRemoteSwiftPackageReference "equatable" */; - productName = Equatable; - }; - 278EF52E2E227304009C32EB /* Equatable */ = { - isa = XCSwiftPackageProductDependency; - package = 278EF52B2E2272F2009C32EB /* XCRemoteSwiftPackageReference "equatable" */; - productName = Equatable; - }; - 2792849E2DFF137400234D64 /* SnapshotTesting */ = { - isa = XCSwiftPackageProductDependency; - package = 275752022DEE147E003E467C /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */; - productName = SnapshotTesting; - }; - 279FED0C2DF4567B00320390 /* OpenSwiftUI */ = { - isa = XCSwiftPackageProductDependency; - productName = OpenSwiftUI; - }; - 27BB94432F5D5FE800B2AA0A /* Equatable */ = { - isa = XCSwiftPackageProductDependency; - package = 278EF52B2E2272F2009C32EB /* XCRemoteSwiftPackageReference "equatable" */; - productName = Equatable; - }; - 27BB94452F5D5FEE00B2AA0A /* Equatable */ = { - isa = XCSwiftPackageProductDependency; - package = 278EF52B2E2272F2009C32EB /* XCRemoteSwiftPackageReference "equatable" */; - productName = Equatable; - }; - 27CD0B5E2AFC8DA7003665EB /* OpenSwiftUI */ = { - isa = XCSwiftPackageProductDependency; - productName = OpenSwiftUI; - }; - 27D49E0D2BA60AF600F6E2E2 /* OpenSwiftUI */ = { - isa = XCSwiftPackageProductDependency; - productName = OpenSwiftUI; - }; -/* End XCSwiftPackageProductDependency section */ - }; - rootObject = 27CD0B412AFC8D37003665EB /* Project object */; -} diff --git a/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_Example.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_Example.xcscheme deleted file mode 100644 index b1b0b8e82..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_Example.xcscheme +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_HostingExample.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_HostingExample.xcscheme deleted file mode 100644 index 9ba3dd6b6..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_HostingExample.xcscheme +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_TestingHost.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_TestingHost.xcscheme deleted file mode 100644 index c56e60a89..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_TestingHost.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_UITests.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_UITests.xcscheme deleted file mode 100644 index 382e37f12..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/OSUI_UITests.xcscheme +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_Example.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_Example.xcscheme deleted file mode 100644 index 26ab3a722..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_Example.xcscheme +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_HostingExample.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_HostingExample.xcscheme deleted file mode 100644 index 3a27745ba..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_HostingExample.xcscheme +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_TestingHost.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_TestingHost.xcscheme deleted file mode 100644 index 0db9ed435..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_TestingHost.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_UITests.xcscheme b/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_UITests.xcscheme deleted file mode 100644 index f0f7211d4..000000000 --- a/Example/Example.xcodeproj/xcshareddata/xcschemes/SUI_UITests.xcscheme +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/OpenSwiftUIUITests/OpenSwiftUIUITests-Bridging-Header.h b/Example/OpenSwiftUIUITests/OpenSwiftUIUITests-Bridging-Header.h index dfb27df13..81e272cc7 100644 --- a/Example/OpenSwiftUIUITests/OpenSwiftUIUITests-Bridging-Header.h +++ b/Example/OpenSwiftUIUITests/OpenSwiftUIUITests-Bridging-Header.h @@ -2,4 +2,4 @@ // Use this file to import your target's public headers that you would like to expose to Swift. // -#import "AnimationDebugControllerHelper.h" +#import "UITests/AnimationDebugControllerHelper.h" diff --git a/Example/OpenSwiftUIUITests/OpenSwiftUIUITests.xctestplan b/Example/OpenSwiftUIUITests/OpenSwiftUIUITests.xctestplan index a756e13ef..1d19da727 100644 --- a/Example/OpenSwiftUIUITests/OpenSwiftUIUITests.xctestplan +++ b/Example/OpenSwiftUIUITests/OpenSwiftUIUITests.xctestplan @@ -30,7 +30,7 @@ { "target" : { "containerPath" : "container:Example.xcodeproj", - "identifier" : "279283B82DFF11CE00234D64", + "identifier" : "E3439414A64A65510C1A69E1", "name" : "OpenSwiftUIUITests" } } diff --git a/Example/Package.swift b/Example/Package.swift deleted file mode 100644 index ea456731e..000000000 --- a/Example/Package.swift +++ /dev/null @@ -1,65 +0,0 @@ -// swift-tools-version: 5.9 -// The swift-tools-version declares the minimum version of Swift required to build this package. - -import Foundation -import PackageDescription - -let exampleTarget = Target.executableTarget( - name: "Example", - dependencies: [ - .product(name: "OpenSwiftUI", package: "OpenSwiftUI"), - ], - path: "Example", - sources: ["ExampleApp.swift", "ContentView.swift"] -) - -let package = Package( - name: "Example", - platforms: [ - .macOS(.v10_15), - .iOS(.v13), - ], - products: [.executable(name: "Example", targets: ["Example"])], - dependencies: [ - .package(path: "../"), - .package(path: "../../OpenAttributeGraph") - ], - targets: [ - exampleTarget, - ] -) - -func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool { - guard let value = ProcessInfo.processInfo.environment[key] else { - return defaultValue - } - if value == "1" { - return true - } else if value == "0" { - return false - } else { - return defaultValue - } -} - -#if os(macOS) -let attributeGraphCondition = envEnable("OPENATTRIBUTEGRAPH_ATTRIBUTEGRAPH", default: true) -#else -let attributeGraphCondition = envEnable("OPENATTRIBUTEGRAPH_ATTRIBUTEGRAPH") -#endif - -extension Target { - func addAGSettings() { - // FIXME: Weird SwiftPM behavior for binary Target. Otherwize we'll get the following error message - // "could not determine executable path for bundle 'AttributeGraph.framework'" - dependencies.append(.product(name: "AttributeGraph", package: "OpenAttributeGraph")) - - var swiftSettings = swiftSettings ?? [] - swiftSettings.append(.define("OPENSWIFTUI_ATTRIBUTEGRAPH")) - self.swiftSettings = swiftSettings - } -} - -if attributeGraphCondition { - exampleTarget.addAGSettings() -} diff --git a/Example/Project.swift b/Example/Project.swift new file mode 100644 index 000000000..71208de95 --- /dev/null +++ b/Example/Project.swift @@ -0,0 +1,436 @@ +import ProjectDescription + +// MARK: - Constants + +let destinations: Destinations = [.iPhone, .iPad, .mac, .appleVision] + +let deploymentTargets = DeploymentTargets.multiplatform( + iOS: "18.0", + macOS: "15.0", + visionOS: "2.0" +) + +let openSwiftUIDebug = ConfigurationName.configuration("OpenSwiftUIDebug") +let openSwiftUIRelease = ConfigurationName.configuration("OpenSwiftUIRelease") +let swiftUIDebug = ConfigurationName.configuration("SwiftUIDebug") +let swiftUIRelease = ConfigurationName.configuration("SwiftUIRelease") + +let projectConfigurations: [Configuration] = [ + .debug(name: swiftUIDebug, xcconfig: "../Configurations/Shared/SwiftUI-debug.xcconfig"), + .release(name: swiftUIRelease, xcconfig: "../Configurations/Shared/SwiftUI-release.xcconfig"), + .debug(name: openSwiftUIDebug, xcconfig: "../Configurations/Shared/OpenSwiftUI-debug.xcconfig"), + .release(name: openSwiftUIRelease, xcconfig: "../Configurations/Shared/OpenSwiftUI-release.xcconfig"), +] + +let swiftUIModeSettings: SettingsDictionary = [ + "OPENSWIFTUI_TARGET_BUNDLE_ID": "SwiftUI", + "SWIFT_VERSION": "5.0", +] + +let openSwiftUIModeSettings: SettingsDictionary = [ + "GCC_PREPROCESSOR_DEFINITIONS": "$(inherited) OPENSWIFTUI=1", + "OPENSWIFTUI_TARGET_BUNDLE_ID": "OpenSwiftUI", + "SWIFT_ACTIVE_COMPILATION_CONDITIONS": "$(inherited) OPENSWIFTUI", + "SWIFT_VERSION": "5.0", +] + +let debugModeSettings: SettingsDictionary = [ + "ENABLE_TESTABILITY": "YES", + "GCC_PREPROCESSOR_DEFINITIONS": "$(inherited) DEBUG=1", + "SWIFT_ACTIVE_COMPILATION_CONDITIONS": "$(inherited) DEBUG", + "SWIFT_COMPILATION_MODE": "singlefile", + "SWIFT_OPTIMIZATION_LEVEL": "-Onone", +] + +let openSwiftUIDebugModeSettings = openSwiftUIModeSettings.merging([ + "ENABLE_TESTABILITY": "YES", + "GCC_PREPROCESSOR_DEFINITIONS": "$(inherited) OPENSWIFTUI=1 DEBUG=1", + "SWIFT_ACTIVE_COMPILATION_CONDITIONS": "$(inherited) OPENSWIFTUI DEBUG", + "SWIFT_COMPILATION_MODE": "singlefile", + "SWIFT_OPTIMIZATION_LEVEL": "-Onone", +]) + +func targetConfigurations(_ xcconfig: Path) -> [Configuration] { + [ + .debug(name: swiftUIDebug, settings: swiftUIModeSettings.merging(debugModeSettings), xcconfig: xcconfig), + .release(name: swiftUIRelease, settings: swiftUIModeSettings, xcconfig: xcconfig), + .debug(name: openSwiftUIDebug, settings: openSwiftUIDebugModeSettings, xcconfig: xcconfig), + .release(name: openSwiftUIRelease, settings: openSwiftUIModeSettings, xcconfig: xcconfig), + ] +} + +func settings(base: SettingsDictionary = [:], xcconfig: Path) -> Settings { + .settings( + base: base, + configurations: targetConfigurations(xcconfig), + defaultSettings: .none, + defaultConfiguration: "OpenSwiftUIDebug" + ) +} + +let commonAppSettings: SettingsDictionary = [ + "ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon", + "ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME": "AccentColor", + "CODE_SIGN_STYLE": "Automatic", + "DEVELOPMENT_TEAM": "", + "ENABLE_PREVIEWS": "YES", + "GENERATE_INFOPLIST_FILE": "YES", + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]": "YES", + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]": "YES", + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]": "YES", + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]": "YES", + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]": "YES", + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]": "YES", + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]": "UIStatusBarStyleDefault", + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]": "UIStatusBarStyleDefault", + "INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad": "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight", + "INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone": "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight", + "FRAMEWORK_SEARCH_PATHS": [ + "$(inherited)", + "$(BUILD_DIR)/Debug$(EFFECTIVE_PLATFORM_NAME)", + "$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)", + ], + "LD_RUNPATH_SEARCH_PATHS": [ + "@executable_path/Frameworks", + ], + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]": "@executable_path/../Frameworks", + "LIBRARY_SEARCH_PATHS": [ + "$(inherited)", + "$(BUILD_DIR)/Debug$(EFFECTIVE_PLATFORM_NAME)", + "$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)", + ], + "SDKROOT": "auto", + "SUPPORTED_PLATFORMS": "iphoneos iphonesimulator macosx xros xrsimulator", + "SUPPORTS_MACCATALYST": "NO", + "SWIFT_EMIT_LOC_STRINGS": "YES", + "SWIFT_INCLUDE_PATHS": [ + "$(inherited)", + "$(SRCROOT)/Modules/Platform/cocoa", + ], + "SWIFT_VERSION": "5.0", + "TARGETED_DEVICE_FAMILY": "1,2,7", +] + +let exampleSettings = commonAppSettings.merging([ + "ENABLE_HARDENED_RUNTIME": "YES", +]) + +let hostingExampleSettings = commonAppSettings.merging([ + "CLANG_ENABLE_MODULES": "YES", + "GENERATE_INFOPLIST_FILE": "YES", + "INFOPLIST_FILE": "HostingExample/Info.plist", + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents": "YES", + "INFOPLIST_KEY_UILaunchStoryboardName": "LaunchScreen", + "INFOPLIST_KEY_UIMainStoryboardFile": "Main", + "LD_RUNPATH_SEARCH_PATHS": [ + "$(inherited)", + "@executable_path/Frameworks", + ], + "REGISTER_APP_GROUPS": "NO", + "SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD": "NO", + "SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD": "NO", + "SWIFT_OPTIMIZATION_LEVEL": "-Onone", + "XROS_DEPLOYMENT_TARGET": "2.0", +]) + +let testingHostSettings = commonAppSettings.merging([ + "REGISTER_APP_GROUPS": "YES", +]) + +let uiTestsSettings: SettingsDictionary = [ + "BUNDLE_LOADER": "$(TEST_HOST)", + "CODE_SIGN_STYLE": "Automatic", + "FRAMEWORK_SEARCH_PATHS": [ + "$(inherited)", + "$(BUILD_DIR)/Debug$(EFFECTIVE_PLATFORM_NAME)", + "$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)", + ], + "GENERATE_INFOPLIST_FILE": "YES", + "LIBRARY_SEARCH_PATHS": [ + "$(inherited)", + "$(BUILD_DIR)/Debug$(EFFECTIVE_PLATFORM_NAME)", + "$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)", + ], + "LOCALIZATION_PREFERS_STRING_CATALOGS": "YES", + "SDKROOT": "auto", + "SUPPORTED_PLATFORMS": "iphoneos iphonesimulator macosx xros xrsimulator", + "SUPPORTS_MACCATALYST": "NO", + "SWIFT_EMIT_LOC_STRINGS": "NO", + "SWIFT_INCLUDE_PATHS": [ + "$(inherited)", + "$(SRCROOT)/Modules/Platform/cocoa", + ], + "SWIFT_OBJC_BRIDGING_HEADER": "OpenSwiftUIUITests/OpenSwiftUIUITests-Bridging-Header.h", + "SWIFT_VERSION": "5.0", + "TARGETED_DEVICE_FAMILY": "1,2,7", + "TEST_HOST": "$(BUILT_PRODUCTS_DIR)/TestingHost.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/TestingHost", +] + +let sharedSources: SourceFilesList = [ + "Shared/**/*.swift", +] + +let sharedResources: ResourceFileElements = [ + "Shared/Assets/Assets.xcassets", + "Shared/Assets/images/**", +] + +let privateFrameworkDependencies: [TargetDependency] = [ + .external(name: "AttributeGraph"), + .external(name: "RenderBox"), + .external(name: "CoreUI"), + .external(name: "CoreSVG"), + .external(name: "SFSymbols"), + .external(name: "BacklightServices", condition: .when([.ios, .visionos])), +] + +let appDependencies: [TargetDependency] = [ + .external(name: "OpenSwiftUI"), + .external(name: "Equatable"), +] + privateFrameworkDependencies + +let testArguments = Arguments.arguments( + environmentVariables: [ + "SNAPSHOT_REFERENCE_DIR": .environmentVariable( + value: "$(PROJECT_DIR)/ReferenceImages", + isEnabled: true + ), + "SWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + ] +) + +let launchArguments = Arguments.arguments( + environmentVariables: [ + "SWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + ] +) + +let openSwiftUILaunchArguments = Arguments.arguments( + environmentVariables: [ + "OPENSWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + "SWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + ] +) + +let openSwiftUIHostingLaunchArguments = Arguments.arguments( + environmentVariables: [ + "SWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + "OPENSWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + ] +) + +let swiftUIHostingLaunchArguments = Arguments.arguments( + environmentVariables: [ + "SWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + "AG_PRINT_CYCLES": .environmentVariable(value: "2", isEnabled: false), + "AG_TRAP_CYCLES": .environmentVariable(value: "1", isEnabled: false), + "OPENSWIFTUI_PRINT_TREE": .environmentVariable(value: "1", isEnabled: false), + ] +) + +// MARK: - Targets + +let targets: [Target] = [ + .target( + name: "Example", + destinations: destinations, + product: .app, + bundleId: "org.OpenSwiftUIProject.$(OPENSWIFTUI_TARGET_BUNDLE_ID).Example", + deploymentTargets: deploymentTargets, + infoPlist: .extendingDefault(with: [:]), + sources: [ + "Example/**/*.swift", + "Shared/**/*.swift", + ], + resources: sharedResources, + entitlements: "Example/Example.entitlements", + dependencies: appDependencies, + settings: settings(base: exampleSettings, xcconfig: "../Configurations/Example.xcconfig") + ), + .target( + name: "HostingExample", + destinations: destinations, + product: .app, + bundleId: "org.OpenSwiftUIProject.$(OPENSWIFTUI_TARGET_BUNDLE_ID).HostingExample", + deploymentTargets: deploymentTargets, + infoPlist: "HostingExample/Info.plist", + sources: [ + .glob("HostingExample/**/*.swift"), + .glob("Shared/**/*.swift"), + ], + resources: [ + "HostingExample/Base.lproj/**", + "Shared/Assets/Assets.xcassets", + "Shared/Assets/images/**", + ], + dependencies: appDependencies, + settings: settings(base: hostingExampleSettings, xcconfig: "../Configurations/HostingExample.xcconfig") + ), + .target( + name: "TestingHost", + destinations: destinations, + product: .app, + bundleId: "org.OpenSwiftUIProject.$(OPENSWIFTUI_TARGET_BUNDLE_ID).TestingHost", + deploymentTargets: deploymentTargets, + infoPlist: .extendingDefault(with: [:]), + sources: [ + "TestingHost/**/*.swift", + "Shared/**/*.swift", + ], + resources: sharedResources, + entitlements: "TestingHost/TestingHost.entitlements", + dependencies: appDependencies, + settings: settings(base: testingHostSettings, xcconfig: "../Configurations/TestingHost.xcconfig") + ), + .target( + name: "OpenSwiftUIUITests", + destinations: destinations, + product: .unitTests, + bundleId: "org.OpenSwiftUIProject.$(OPENSWIFTUI_TARGET_BUNDLE_ID).OpenSwiftUIUITests", + deploymentTargets: deploymentTargets, + infoPlist: .default, + sources: [ + "OpenSwiftUIUITests/**/*.swift", + "OpenSwiftUIUITests/**/*.m", + "OpenSwiftUIUITests/**/*.c", + ], + dependencies: [ + .target(name: "TestingHost"), + .external(name: "SnapshotTesting"), + .external(name: "Equatable"), + ] + privateFrameworkDependencies, + settings: settings(base: uiTestsSettings, xcconfig: "../Configurations/OpenSwiftUIUITests.xcconfig") + ), +] + +// MARK: - Schemes + +func scheme( + name: String, + target: TargetReference, + debugConfiguration: ConfigurationName, + releaseConfiguration: ConfigurationName, + testableTargets: [TestableTarget] = [ + .testableTarget(target: "OpenSwiftUIUITests", parallelization: .enabled), + ], + includeTestAction: Bool = true, + runArguments: Arguments = launchArguments +) -> Scheme { + .scheme( + name: name, + shared: true, + buildAction: .buildAction(targets: [target]), + testAction: includeTestAction + ? .targets( + testableTargets, + arguments: testArguments, + configuration: debugConfiguration, + expandVariableFromTarget: "TestingHost" + ) + : nil, + runAction: .runAction( + configuration: debugConfiguration, + executable: .executable(target), + arguments: runArguments + ), + archiveAction: .archiveAction(configuration: releaseConfiguration), + profileAction: .profileAction( + configuration: releaseConfiguration, + executable: .executable(target) + ), + analyzeAction: .analyzeAction(configuration: debugConfiguration) + ) +} + +let schemes: [Scheme] = [ + scheme( + name: "OSUI_Example", + target: "Example", + debugConfiguration: openSwiftUIDebug, + releaseConfiguration: openSwiftUIRelease, + runArguments: openSwiftUILaunchArguments + ), + scheme( + name: "SUI_Example", + target: "Example", + debugConfiguration: swiftUIDebug, + releaseConfiguration: swiftUIRelease + ), + scheme( + name: "OSUI_HostingExample", + target: "HostingExample", + debugConfiguration: openSwiftUIDebug, + releaseConfiguration: openSwiftUIRelease, + testableTargets: [], + runArguments: openSwiftUIHostingLaunchArguments + ), + scheme( + name: "SUI_HostingExample", + target: "HostingExample", + debugConfiguration: swiftUIDebug, + releaseConfiguration: swiftUIRelease, + testableTargets: [], + runArguments: swiftUIHostingLaunchArguments + ), + scheme( + name: "OSUI_TestingHost", + target: "TestingHost", + debugConfiguration: openSwiftUIDebug, + releaseConfiguration: openSwiftUIRelease, + includeTestAction: false + ), + scheme( + name: "SUI_TestingHost", + target: "TestingHost", + debugConfiguration: swiftUIDebug, + releaseConfiguration: swiftUIRelease, + includeTestAction: false + ), + .scheme( + name: "OSUI_UITests", + shared: true, + buildAction: .buildAction(targets: ["OpenSwiftUIUITests"]), + testAction: .targets( + [.testableTarget(target: "OpenSwiftUIUITests", parallelization: .enabled)], + arguments: testArguments, + configuration: openSwiftUIDebug, + expandVariableFromTarget: "TestingHost" + ), + analyzeAction: .analyzeAction(configuration: openSwiftUIDebug) + ), + .scheme( + name: "SUI_UITests", + shared: true, + buildAction: .buildAction(targets: ["OpenSwiftUIUITests"]), + testAction: .targets( + [.testableTarget(target: "OpenSwiftUIUITests", parallelization: .enabled)], + arguments: testArguments, + configuration: swiftUIDebug, + expandVariableFromTarget: "TestingHost" + ), + analyzeAction: .analyzeAction(configuration: swiftUIDebug) + ), +] + +// MARK: - Project + +let project = Project( + name: "Example", + options: .options( + automaticSchemesOptions: .disabled, + developmentRegion: "en" + ), + settings: .settings( + configurations: projectConfigurations, + defaultSettings: .none, + defaultConfiguration: "OpenSwiftUIDebug" + ), + targets: targets, + schemes: schemes, + additionalFiles: [ + "../Configurations/**", + "Modules/**", + "ReferenceImages/**", + "OpenSwiftUIUITests/OpenSwiftUIUITests.xctestplan", + ] +) diff --git a/Example/README.md b/Example/README.md index cd09167bd..b3bec6b53 100644 --- a/Example/README.md +++ b/Example/README.md @@ -2,24 +2,20 @@ ## Pre-Requirements -Clone other components to the same directory of `OpenSwiftUI` +Run the CI setup script from the `OpenSwiftUI` repository root. It checks out the local package dependencies used by the generated Example project. ```shell -cd .. -git clone https://github.com/OpenSwiftUIProject/OpenAttributeGraph.git -git clone https://github.com/OpenSwiftUIProject/OpenRenderBox.git -git clone https://github.com/OpenSwiftUIProject/DarwinPrivateFrameworks.git +# From OpenSwiftUI/Example +../Scripts/CI/darwin_setup_build.sh ``` +`OpenCoreGraphics` and `OpenObservation` are resolved through the `OpenSwiftUI` package dependency. + ## Configure AttributeGraph Backend Since OpenAttributeGraph is not yet completed, you need to configure an AG backend before building. -Use Apple's private AttributeGraph framework (Darwin only): - -```shell -export OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH=1 -``` +This example defaults to Apple's private AttributeGraph framework through `mise.toml`. Or use the Compute module: @@ -28,6 +24,13 @@ export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE=1 export OPENSWIFTUI_OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY=1 ``` +## Generate Project + +```shell +mise exec -- tuist install +mise exec -- tuist generate --no-open +``` + ## Example A OpenSwiftUI/SwiftUI `App` lifecycle example. diff --git a/Example/Tuist.swift b/Example/Tuist.swift new file mode 100644 index 000000000..9492042f4 --- /dev/null +++ b/Example/Tuist.swift @@ -0,0 +1,14 @@ +import ProjectDescription + +let tuist = Tuist( + project: .tuist( + generationOptions: .options( + manifestEnvironment: [ + "DARWINPRIVATEFRAMEWORKS_*", + "OPENATTRIBUTEGRAPH_*", + "OPENRENDERBOX_*", + "OPENSWIFTUI_*", + ] + ) + ) +) diff --git a/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Example/Tuist/Package.resolved similarity index 89% rename from Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to Example/Tuist/Package.resolved index 0bafd5be6..b2741d55c 100644 --- a/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Example/Tuist/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "5df6e9019cf62bebb17ce17263bb199baabb9bf0e205b68f2e787623f4636d83", + "originHash" : "154116076f9106391f665916f636f6142e20264d7bdbff93d21cf58c63c1c2fc", "pins" : [ { "identity" : "equatable", @@ -16,7 +16,7 @@ "location" : "https://github.com/OpenSwiftUIProject/OpenCoreGraphics", "state" : { "branch" : "main", - "revision" : "8d63c405f565fb287042e0b8dc3bf0c4b8b2b56f" + "revision" : "050239bd42b19a4c8b1ef3936bfb9f3589ecfc46" } }, { @@ -25,7 +25,7 @@ "location" : "https://github.com/OpenSwiftUIProject/OpenObservation", "state" : { "branch" : "main", - "revision" : "814dbe008056db6007bfc3d27fe585837f30e9ed" + "revision" : "05e0581e76b7153338836469320a4789fd0257e2" } }, { @@ -33,8 +33,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-collections", "state" : { - "revision" : "6675bc0ff86e61436e615df6fc5174e043e57924", - "version" : "1.4.1" + "revision" : "03cc312c2c933ed87abace34044a5dff7a3117c1", + "version" : "1.5.0" } }, { diff --git a/Example/Tuist/Package.swift b/Example/Tuist/Package.swift new file mode 100644 index 000000000..ac4bbdabe --- /dev/null +++ b/Example/Tuist/Package.swift @@ -0,0 +1,79 @@ +// swift-tools-version: 6.1 + +import PackageDescription + +let package = Package( + name: "ExampleDependencies", + dependencies: [ + .package(path: "../../"), + .package(path: "../../../OpenAttributeGraph"), + .package(path: "../../../OpenRenderBox"), + .package(path: "../../../DarwinPrivateFrameworks"), + .package(url: "https://github.com/apple/swift-collections", from: "1.1.0"), + .package(url: "https://github.com/apple/swift-numerics", from: "1.0.3"), + .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "601.0.0"), + .package(url: "https://github.com/OpenSwiftUIProject/equatable.git", branch: "main"), + .package(url: "https://github.com/OpenSwiftUIProject/SymbolLocator.git", from: "0.2.0"), + .package(url: "https://github.com/OpenSwiftUIProject/swift-snapshot-testing", exact: "1.18.9-osui"), + ] +) + +#if TUIST +import ProjectDescription + +let examplePackageDestinations: Destinations = [.iPhone, .iPad, .mac, .appleVision] +let openSwiftUIPackageDebugSettings: SettingsDictionary = [ + "SWIFT_COMPILATION_MODE": "singlefile", + "SWIFT_OPTIMIZATION_LEVEL": "-Onone", +] +let openSwiftUIPackageReleaseSettings: SettingsDictionary = [ + "SWIFT_COMPILATION_MODE": "wholemodule", + "SWIFT_OPTIMIZATION_LEVEL": "-O", +] +let openSwiftUIPackageConfigurations: [Configuration] = [ + .debug(name: "SwiftUIDebug", settings: openSwiftUIPackageDebugSettings), + .release(name: "SwiftUIRelease", settings: openSwiftUIPackageReleaseSettings), + .debug(name: "OpenSwiftUIDebug", settings: openSwiftUIPackageDebugSettings), + .release(name: "OpenSwiftUIRelease", settings: openSwiftUIPackageReleaseSettings), +] +let openSwiftUITargetSettings: SettingsDictionary = [ + "DYLIB_INSTALL_NAME_BASE": "@rpath", +] + +let packageSettings = PackageSettings( + productTypes: [ + "OpenSwiftUI": ProjectDescription.Product.framework, + "OpenSwiftUICore": ProjectDescription.Product.staticFramework, + "OpenSwiftUI_SPI": ProjectDescription.Product.staticFramework, + "COpenSwiftUI": ProjectDescription.Product.staticFramework, + "OpenSwiftUIMacros": ProjectDescription.Product.macro, + "OpenSwiftUITestsSupport": ProjectDescription.Product.staticFramework, + "OpenSwiftUISymbolDualTestsSupport": ProjectDescription.Product.staticFramework, + "OpenAttributeGraphShims": ProjectDescription.Product.staticFramework, + "OpenCoreGraphicsShims": ProjectDescription.Product.staticFramework, + "OpenObservation": ProjectDescription.Product.staticFramework, + "OpenQuartzCoreShims": ProjectDescription.Product.staticFramework, + "OpenRenderBoxShims": ProjectDescription.Product.staticFramework, + "SymbolLocator": ProjectDescription.Product.staticFramework, + ], + productDestinations: [ + "OpenSwiftUI": examplePackageDestinations, + "OpenSwiftUICore": examplePackageDestinations, + "OpenSwiftUI_SPI": examplePackageDestinations, + "OpenSwiftUIExtension": examplePackageDestinations, + "OpenSwiftUIBridge": examplePackageDestinations, + "OpenAttributeGraph": examplePackageDestinations, + "OpenAttributeGraphShims": examplePackageDestinations, + "OpenRenderBox": examplePackageDestinations, + "OpenRenderBoxShims": examplePackageDestinations, + ], + baseSettings: .settings( + configurations: openSwiftUIPackageConfigurations, + defaultSettings: .none, + defaultConfiguration: "OpenSwiftUIDebug" + ), + targetSettings: [ + "OpenSwiftUI": .settings(base: openSwiftUITargetSettings), + ] +) +#endif diff --git a/Example/mise.toml b/Example/mise.toml new file mode 100644 index 000000000..0d1961104 --- /dev/null +++ b/Example/mise.toml @@ -0,0 +1,7 @@ +[tools] +tuist = "4.193.0" + +[env] +OPENSWIFTUI_USE_LOCAL_DEPS = "0" +OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH = "1" +OPENSWIFTUI_LINK_BACKLIGHTSERVICES = "1"