[App] Project setup (#1)

This PR contains the work done to setup the Xcode project that contains the app target, plus two additional test targets.

Reviewed-on: #1
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit is contained in:
Javier Cicchelli 2024-10-04 20:02:48 +00:00 committed by Javier Cicchelli
parent f7e412fa58
commit f8a9667ee0
16 changed files with 326 additions and 88 deletions

View File

@ -7,14 +7,14 @@
objects = {
/* Begin PBXContainerItemProxy section */
46D4BE8B2CB06ED500FCFB84 /* PBXContainerItemProxy */ = {
46D4BED82CB07C7A00FCFB84 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46D4BE6F2CB06ED300FCFB84 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 46D4BE762CB06ED300FCFB84;
remoteInfo = Piper;
};
46D4BE952CB06ED500FCFB84 /* PBXContainerItemProxy */ = {
46D4BEE82CB07CB600FCFB84 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 46D4BE6F2CB06ED300FCFB84 /* Project object */;
proxyType = 1;
@ -25,24 +25,51 @@
/* Begin PBXFileReference section */
46D4BE772CB06ED300FCFB84 /* Piper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Piper.app; sourceTree = BUILT_PRODUCTS_DIR; };
46D4BE8A2CB06ED500FCFB84 /* PiperTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PiperTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
46D4BE942CB06ED500FCFB84 /* PiperUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PiperUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
46D4BED42CB07C7A00FCFB84 /* UnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
46D4BEE22CB07CB600FCFB84 /* UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
46D4BEF62CB07CCB00FCFB84 /* Exceptions for "Tests" folder in "Piper" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
UITests/UITests.swift,
UITests/UITestsLaunchTests.swift,
UnitTests/UnitTests.swift,
);
target = 46D4BE762CB06ED300FCFB84 /* Piper */;
};
46D4BEF72CB07CCB00FCFB84 /* Exceptions for "Tests" folder in "UnitTests" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
UnitTests/UnitTests.swift,
);
target = 46D4BED32CB07C7A00FCFB84 /* UnitTests */;
};
46D4BEF82CB07CCB00FCFB84 /* Exceptions for "Tests" folder in "UITests" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
UITests/UITests.swift,
UITests/UITestsLaunchTests.swift,
);
target = 46D4BEE12CB07CB600FCFB84 /* UITests */;
};
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
46D4BE792CB06ED300FCFB84 /* Piper */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = Piper;
sourceTree = "<group>";
};
46D4BE8D2CB06ED500FCFB84 /* PiperTests */ = {
46D4BEED2CB07CC100FCFB84 /* Tests */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = PiperTests;
sourceTree = "<group>";
};
46D4BE972CB06ED500FCFB84 /* PiperUITests */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = PiperUITests;
exceptions = (
46D4BEF62CB07CCB00FCFB84 /* Exceptions for "Tests" folder in "Piper" target */,
46D4BEF72CB07CCB00FCFB84 /* Exceptions for "Tests" folder in "UnitTests" target */,
46D4BEF82CB07CCB00FCFB84 /* Exceptions for "Tests" folder in "UITests" target */,
);
path = Tests;
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
@ -55,14 +82,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
46D4BE872CB06ED500FCFB84 /* Frameworks */ = {
46D4BED12CB07C7A00FCFB84 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
46D4BE912CB06ED500FCFB84 /* Frameworks */ = {
46D4BEDF2CB07CB600FCFB84 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@ -76,8 +103,7 @@
isa = PBXGroup;
children = (
46D4BE792CB06ED300FCFB84 /* Piper */,
46D4BE8D2CB06ED500FCFB84 /* PiperTests */,
46D4BE972CB06ED500FCFB84 /* PiperUITests */,
46D4BEED2CB07CC100FCFB84 /* Tests */,
46D4BE782CB06ED300FCFB84 /* Products */,
);
sourceTree = "<group>";
@ -86,8 +112,8 @@
isa = PBXGroup;
children = (
46D4BE772CB06ED300FCFB84 /* Piper.app */,
46D4BE8A2CB06ED500FCFB84 /* PiperTests.xctest */,
46D4BE942CB06ED500FCFB84 /* PiperUITests.xctest */,
46D4BED42CB07C7A00FCFB84 /* UnitTests.xctest */,
46D4BEE22CB07CB600FCFB84 /* UITests.xctest */,
);
name = Products;
sourceTree = "<group>";
@ -109,6 +135,7 @@
);
fileSystemSynchronizedGroups = (
46D4BE792CB06ED300FCFB84 /* Piper */,
46D4BEED2CB07CC100FCFB84 /* Tests */,
);
name = Piper;
packageProductDependencies = (
@ -117,50 +144,44 @@
productReference = 46D4BE772CB06ED300FCFB84 /* Piper.app */;
productType = "com.apple.product-type.application";
};
46D4BE892CB06ED500FCFB84 /* PiperTests */ = {
46D4BED32CB07C7A00FCFB84 /* UnitTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 46D4BEA12CB06ED500FCFB84 /* Build configuration list for PBXNativeTarget "PiperTests" */;
buildConfigurationList = 46D4BEDA2CB07C7A00FCFB84 /* Build configuration list for PBXNativeTarget "UnitTests" */;
buildPhases = (
46D4BE862CB06ED500FCFB84 /* Sources */,
46D4BE872CB06ED500FCFB84 /* Frameworks */,
46D4BE882CB06ED500FCFB84 /* Resources */,
46D4BED02CB07C7A00FCFB84 /* Sources */,
46D4BED12CB07C7A00FCFB84 /* Frameworks */,
46D4BED22CB07C7A00FCFB84 /* Resources */,
);
buildRules = (
);
dependencies = (
46D4BE8C2CB06ED500FCFB84 /* PBXTargetDependency */,
46D4BED92CB07C7A00FCFB84 /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
46D4BE8D2CB06ED500FCFB84 /* PiperTests */,
);
name = PiperTests;
name = UnitTests;
packageProductDependencies = (
);
productName = PiperTests;
productReference = 46D4BE8A2CB06ED500FCFB84 /* PiperTests.xctest */;
productName = UnitTests;
productReference = 46D4BED42CB07C7A00FCFB84 /* UnitTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
46D4BE932CB06ED500FCFB84 /* PiperUITests */ = {
46D4BEE12CB07CB600FCFB84 /* UITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 46D4BEA42CB06ED500FCFB84 /* Build configuration list for PBXNativeTarget "PiperUITests" */;
buildConfigurationList = 46D4BEEA2CB07CB600FCFB84 /* Build configuration list for PBXNativeTarget "UITests" */;
buildPhases = (
46D4BE902CB06ED500FCFB84 /* Sources */,
46D4BE912CB06ED500FCFB84 /* Frameworks */,
46D4BE922CB06ED500FCFB84 /* Resources */,
46D4BEDE2CB07CB600FCFB84 /* Sources */,
46D4BEDF2CB07CB600FCFB84 /* Frameworks */,
46D4BEE02CB07CB600FCFB84 /* Resources */,
);
buildRules = (
);
dependencies = (
46D4BE962CB06ED500FCFB84 /* PBXTargetDependency */,
46D4BEE92CB07CB600FCFB84 /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
46D4BE972CB06ED500FCFB84 /* PiperUITests */,
);
name = PiperUITests;
name = UITests;
packageProductDependencies = (
);
productName = PiperUITests;
productReference = 46D4BE942CB06ED500FCFB84 /* PiperUITests.xctest */;
productName = UITests;
productReference = 46D4BEE22CB07CB600FCFB84 /* UITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
@ -170,17 +191,19 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
CLASSPREFIX = "";
LastSwiftUpdateCheck = 1600;
LastUpgradeCheck = 1600;
ORGANIZATIONNAME = "Röck+Cöde";
TargetAttributes = {
46D4BE762CB06ED300FCFB84 = {
CreatedOnToolsVersion = 16.0;
};
46D4BE892CB06ED500FCFB84 = {
46D4BED32CB07C7A00FCFB84 = {
CreatedOnToolsVersion = 16.0;
TestTargetID = 46D4BE762CB06ED300FCFB84;
};
46D4BE932CB06ED500FCFB84 = {
46D4BEE12CB07CB600FCFB84 = {
CreatedOnToolsVersion = 16.0;
TestTargetID = 46D4BE762CB06ED300FCFB84;
};
@ -201,8 +224,8 @@
projectRoot = "";
targets = (
46D4BE762CB06ED300FCFB84 /* Piper */,
46D4BE892CB06ED500FCFB84 /* PiperTests */,
46D4BE932CB06ED500FCFB84 /* PiperUITests */,
46D4BED32CB07C7A00FCFB84 /* UnitTests */,
46D4BEE12CB07CB600FCFB84 /* UITests */,
);
};
/* End PBXProject section */
@ -215,14 +238,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
46D4BE882CB06ED500FCFB84 /* Resources */ = {
46D4BED22CB07C7A00FCFB84 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
46D4BE922CB06ED500FCFB84 /* Resources */ = {
46D4BEE02CB07CB600FCFB84 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@ -239,14 +262,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
46D4BE862CB06ED500FCFB84 /* Sources */ = {
46D4BED02CB07C7A00FCFB84 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
46D4BE902CB06ED500FCFB84 /* Sources */ = {
46D4BEDE2CB07CB600FCFB84 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@ -256,15 +279,15 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
46D4BE8C2CB06ED500FCFB84 /* PBXTargetDependency */ = {
46D4BED92CB07C7A00FCFB84 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 46D4BE762CB06ED300FCFB84 /* Piper */;
targetProxy = 46D4BE8B2CB06ED500FCFB84 /* PBXContainerItemProxy */;
targetProxy = 46D4BED82CB07C7A00FCFB84 /* PBXContainerItemProxy */;
};
46D4BE962CB06ED500FCFB84 /* PBXTargetDependency */ = {
46D4BEE92CB07CB600FCFB84 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 46D4BE762CB06ED300FCFB84 /* Piper */;
targetProxy = 46D4BE952CB06ED500FCFB84 /* PBXContainerItemProxy */;
targetProxy = 46D4BEE82CB07CB600FCFB84 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@ -392,15 +415,17 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = Piper/Piper.entitlements;
CODE_SIGN_ENTITLEMENTS = Piper/Resources/Entitlements/Piper.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"Piper/Preview Content\"";
DEVELOPMENT_ASSET_PATHS = Piper/Resources/Catalogs/Previews.xcassets;
DEVELOPMENT_TEAM = 7FMNM89WKG;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Piper;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@ -408,7 +433,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.Piper";
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.piper.app.macos";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
@ -420,15 +445,17 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = Piper/Piper.entitlements;
CODE_SIGN_ENTITLEMENTS = Piper/Resources/Entitlements/Piper.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"Piper/Preview Content\"";
DEVELOPMENT_ASSET_PATHS = Piper/Resources/Catalogs/Previews.xcassets;
DEVELOPMENT_TEAM = 7FMNM89WKG;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = Piper;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@ -436,14 +463,14 @@
);
MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.Piper";
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.piper.app.macos";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
};
name = Release;
};
46D4BEA22CB06ED500FCFB84 /* Debug */ = {
46D4BEDB2CB07C7A00FCFB84 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
@ -451,9 +478,8 @@
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 7FMNM89WKG;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.PiperTests";
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.piper.tests.unit";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
@ -461,7 +487,7 @@
};
name = Debug;
};
46D4BEA32CB06ED500FCFB84 /* Release */ = {
46D4BEDC2CB07C7A00FCFB84 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
@ -469,9 +495,8 @@
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 7FMNM89WKG;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.PiperTests";
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.piper.tests.unit";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
@ -479,7 +504,7 @@
};
name = Release;
};
46D4BEA52CB06ED500FCFB84 /* Debug */ = {
46D4BEEB2CB07CB600FCFB84 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
@ -487,7 +512,7 @@
DEVELOPMENT_TEAM = 7FMNM89WKG;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.PiperUITests";
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.piper.tests.ui";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
@ -495,7 +520,7 @@
};
name = Debug;
};
46D4BEA62CB06ED500FCFB84 /* Release */ = {
46D4BEEC2CB07CB600FCFB84 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
@ -503,7 +528,7 @@
DEVELOPMENT_TEAM = 7FMNM89WKG;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.PiperUITests";
PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.piper.tests.ui";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
@ -532,20 +557,20 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
46D4BEA12CB06ED500FCFB84 /* Build configuration list for PBXNativeTarget "PiperTests" */ = {
46D4BEDA2CB07C7A00FCFB84 /* Build configuration list for PBXNativeTarget "UnitTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
46D4BEA22CB06ED500FCFB84 /* Debug */,
46D4BEA32CB06ED500FCFB84 /* Release */,
46D4BEDB2CB07C7A00FCFB84 /* Debug */,
46D4BEDC2CB07C7A00FCFB84 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
46D4BEA42CB06ED500FCFB84 /* Build configuration list for PBXNativeTarget "PiperUITests" */ = {
46D4BEEA2CB07CB600FCFB84 /* Build configuration list for PBXNativeTarget "UITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
46D4BEA52CB06ED500FCFB84 /* Debug */,
46D4BEA62CB06ED500FCFB84 /* Release */,
46D4BEEB2CB07CB600FCFB84 /* Debug */,
46D4BEEC2CB07CB600FCFB84 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;

View File

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BE762CB06ED300FCFB84"
BuildableName = "Piper.app"
BlueprintName = "Piper"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<TestPlans>
<TestPlanReference
reference = "container:Tests/Plans/AllTests.xctestplan"
default = "YES">
</TestPlanReference>
</TestPlans>
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BE892CB06ED500FCFB84"
BuildableName = "PiperTests.xctest"
BlueprintName = "PiperTests"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BE932CB06ED500FCFB84"
BuildableName = "PiperUITests.xctest"
BlueprintName = "PiperUITests"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BED32CB07C7A00FCFB84"
BuildableName = "UnitTests.xctest"
BlueprintName = "UnitTests"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BEE12CB07CB600FCFB84"
BuildableName = "UITests.xctest"
BlueprintName = "UITests"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BE762CB06ED300FCFB84"
BuildableName = "Piper.app"
BlueprintName = "Piper"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "46D4BE762CB06ED300FCFB84"
BuildableName = "Piper.app"
BlueprintName = "Piper"
ReferencedContainer = "container:Piper.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,8 +1,9 @@
//
// PiperApp.swift
// Piper
// Piper ~ App
//
// Created by Javier Cicchelli on 04/10/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import SwiftUI

View File

@ -1,8 +1,9 @@
//
// Item.swift
// Piper
// Piper ~ App
//
// Created by Javier Cicchelli on 04/10/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import Foundation

View File

@ -1,8 +1,9 @@
//
// ContentView.swift
// Piper
// Piper ~ App
//
// Created by Javier Cicchelli on 04/10/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import SwiftUI

View File

@ -0,0 +1,31 @@
{
"configurations" : [
{
"id" : "F4FAED8B-95BF-4DAC-B497-0F0650E4C788",
"name" : "Configuration 1",
"options" : {
}
}
],
"defaultOptions" : {
"testTimeoutsEnabled" : true
},
"testTargets" : [
{
"target" : {
"containerPath" : "container:Piper.xcodeproj",
"identifier" : "46D4BED32CB07C7A00FCFB84",
"name" : "UnitTests"
}
},
{
"target" : {
"containerPath" : "container:Piper.xcodeproj",
"identifier" : "46D4BEE12CB07CB600FCFB84",
"name" : "UITests"
}
}
],
"version" : 1
}

View File

@ -0,0 +1,24 @@
{
"configurations" : [
{
"id" : "12ED8D66-B73D-491B-9EE5-6BD0F56B443F",
"name" : "Configuration 1",
"options" : {
}
}
],
"defaultOptions" : {
"testTimeoutsEnabled" : true
},
"testTargets" : [
{
"target" : {
"containerPath" : "container:Piper.xcodeproj",
"identifier" : "46D4BEE12CB07CB600FCFB84",
"name" : "UITests"
}
}
],
"version" : 1
}

View File

@ -0,0 +1,24 @@
{
"configurations" : [
{
"id" : "F760EDE2-26F9-4002-966D-BB3D60BA2764",
"name" : "Configuration 1",
"options" : {
}
}
],
"defaultOptions" : {
"testTimeoutsEnabled" : true
},
"testTargets" : [
{
"target" : {
"containerPath" : "container:Piper.xcodeproj",
"identifier" : "46D4BED32CB07C7A00FCFB84",
"name" : "UnitTests"
}
}
],
"version" : 1
}

View File

@ -1,13 +1,14 @@
//
// PiperUITests.swift
// PiperUITests
// UITests.swift
// UITests
//
// Created by Javier Cicchelli on 04/10/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import XCTest
final class PiperUITests: XCTestCase {
final class UITests: XCTestCase {
override func setUpWithError() throws {
// Put setup code here. This method is called before the invocation of each test method in the class.

View File

@ -1,13 +1,14 @@
//
// PiperUITestsLaunchTests.swift
// PiperUITests
// UITestsLaunchTests.swift
// UITests
//
// Created by Javier Cicchelli on 04/10/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import XCTest
final class PiperUITestsLaunchTests: XCTestCase {
final class UITestsLaunchTests: XCTestCase {
override class var runsForEachTargetApplicationUIConfiguration: Bool {
true

View File

@ -1,14 +1,14 @@
//
// PiperTests.swift
// PiperTests
// UnitTests.swift
// UnitTests
//
// Created by Javier Cicchelli on 04/10/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import Testing
@testable import Piper
struct PiperTests {
struct UnitTests {
@Test func example() async throws {
// Write your test here and use APIs like `#expect(...)` to check expected conditions.