revert to xcode 15

This commit is contained in:
neon443
2024-12-31 11:05:46 +00:00
parent 9a7a589933
commit fe46be8ee7
8 changed files with 287 additions and 218 deletions

View File

@@ -3,71 +3,72 @@
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objectVersion = 56;
objects = {
/* Begin PBXBuildFile section */
A9E0E5802D082C67007683B6 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = A9E0E57F2D082C67007683B6 /* README.md */; };
A920C2CF2D24060E00E4F9B1 /* MineSwiftApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2CE2D24060E00E4F9B1 /* MineSwiftApp.swift */; };
A920C2D12D24060E00E4F9B1 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2D02D24060E00E4F9B1 /* ContentView.swift */; };
A920C2D32D24060E00E4F9B1 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2D22D24060E00E4F9B1 /* Item.swift */; };
A920C2D52D24061300E4F9B1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A920C2D42D24061300E4F9B1 /* Assets.xcassets */; };
A920C2D92D24061300E4F9B1 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A920C2D82D24061300E4F9B1 /* Preview Assets.xcassets */; };
A920C2E32D24061400E4F9B1 /* MineSwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2E22D24061400E4F9B1 /* MineSwiftTests.swift */; };
A920C2ED2D24061400E4F9B1 /* MineSwiftUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2EC2D24061400E4F9B1 /* MineSwiftUITests.swift */; };
A920C2EF2D24061400E4F9B1 /* MineSwiftUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2EE2D24061400E4F9B1 /* MineSwiftUITestsLaunchTests.swift */; };
A920C3012D2406B500E4F9B1 /* MinesweeperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C2FF2D2406B400E4F9B1 /* MinesweeperView.swift */; };
A920C3022D2406B600E4F9B1 /* MinesweeperGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = A920C3002D2406B500E4F9B1 /* MinesweeperGame.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
A9AE20172D063AB200200A07 /* PBXContainerItemProxy */ = {
A920C2DF2D24061400E4F9B1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A9AE1FFD2D063AAC00200A07 /* Project object */;
containerPortal = A920C2C32D24060E00E4F9B1 /* Project object */;
proxyType = 1;
remoteGlobalIDString = A9AE20042D063AAD00200A07;
remoteGlobalIDString = A920C2CA2D24060E00E4F9B1;
remoteInfo = MineSwift;
};
A9AE20212D063AB200200A07 /* PBXContainerItemProxy */ = {
A920C2E92D24061400E4F9B1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A9AE1FFD2D063AAC00200A07 /* Project object */;
containerPortal = A920C2C32D24060E00E4F9B1 /* Project object */;
proxyType = 1;
remoteGlobalIDString = A9AE20042D063AAD00200A07;
remoteGlobalIDString = A920C2CA2D24060E00E4F9B1;
remoteInfo = MineSwift;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
A9AE20052D063AAD00200A07 /* MineSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MineSwift.app; sourceTree = BUILT_PRODUCTS_DIR; };
A9AE20162D063AB200200A07 /* MineSwiftTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MineSwiftTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
A9AE20202D063AB200200A07 /* MineSwiftUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MineSwiftUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
A9E0E57F2D082C67007683B6 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
A920C2CB2D24060E00E4F9B1 /* MineSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MineSwift.app; sourceTree = BUILT_PRODUCTS_DIR; };
A920C2CE2D24060E00E4F9B1 /* MineSwiftApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineSwiftApp.swift; sourceTree = "<group>"; };
A920C2D02D24060E00E4F9B1 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
A920C2D22D24060E00E4F9B1 /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = "<group>"; };
A920C2D42D24061300E4F9B1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
A920C2D62D24061300E4F9B1 /* MineSwift.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MineSwift.entitlements; sourceTree = "<group>"; };
A920C2D82D24061300E4F9B1 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
A920C2DE2D24061400E4F9B1 /* MineSwiftTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MineSwiftTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
A920C2E22D24061400E4F9B1 /* MineSwiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineSwiftTests.swift; sourceTree = "<group>"; };
A920C2E82D24061400E4F9B1 /* MineSwiftUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MineSwiftUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
A920C2EC2D24061400E4F9B1 /* MineSwiftUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineSwiftUITests.swift; sourceTree = "<group>"; };
A920C2EE2D24061400E4F9B1 /* MineSwiftUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineSwiftUITestsLaunchTests.swift; sourceTree = "<group>"; };
A920C2FF2D2406B400E4F9B1 /* MinesweeperView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinesweeperView.swift; sourceTree = "<group>"; };
A920C3002D2406B500E4F9B1 /* MinesweeperGame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinesweeperGame.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
A9AE20072D063AAD00200A07 /* MineSwift */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = MineSwift;
sourceTree = "<group>";
};
A9AE20192D063AB200200A07 /* MineSwiftTests */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = MineSwiftTests;
sourceTree = "<group>";
};
A9AE20232D063AB200200A07 /* MineSwiftUITests */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = MineSwiftUITests;
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
A9AE20022D063AAD00200A07 /* Frameworks */ = {
A920C2C82D24060E00E4F9B1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
A9AE20132D063AB200200A07 /* Frameworks */ = {
A920C2DB2D24061400E4F9B1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
A9AE201D2D063AB200200A07 /* Frameworks */ = {
A920C2E52D24061400E4F9B1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -77,159 +78,183 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
A9AE1FFC2D063AAC00200A07 = {
A920C2C22D24060E00E4F9B1 = {
isa = PBXGroup;
children = (
A9E0E57F2D082C67007683B6 /* README.md */,
A9AE20072D063AAD00200A07 /* MineSwift */,
A9AE20192D063AB200200A07 /* MineSwiftTests */,
A9AE20232D063AB200200A07 /* MineSwiftUITests */,
A9AE20062D063AAD00200A07 /* Products */,
A920C2CD2D24060E00E4F9B1 /* MineSwift */,
A920C2E12D24061400E4F9B1 /* MineSwiftTests */,
A920C2EB2D24061400E4F9B1 /* MineSwiftUITests */,
A920C2CC2D24060E00E4F9B1 /* Products */,
);
sourceTree = "<group>";
};
A9AE20062D063AAD00200A07 /* Products */ = {
A920C2CC2D24060E00E4F9B1 /* Products */ = {
isa = PBXGroup;
children = (
A9AE20052D063AAD00200A07 /* MineSwift.app */,
A9AE20162D063AB200200A07 /* MineSwiftTests.xctest */,
A9AE20202D063AB200200A07 /* MineSwiftUITests.xctest */,
A920C2CB2D24060E00E4F9B1 /* MineSwift.app */,
A920C2DE2D24061400E4F9B1 /* MineSwiftTests.xctest */,
A920C2E82D24061400E4F9B1 /* MineSwiftUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
A920C2CD2D24060E00E4F9B1 /* MineSwift */ = {
isa = PBXGroup;
children = (
A920C2CE2D24060E00E4F9B1 /* MineSwiftApp.swift */,
A920C2D02D24060E00E4F9B1 /* ContentView.swift */,
A920C3002D2406B500E4F9B1 /* MinesweeperGame.swift */,
A920C2FF2D2406B400E4F9B1 /* MinesweeperView.swift */,
A920C2D22D24060E00E4F9B1 /* Item.swift */,
A920C2D42D24061300E4F9B1 /* Assets.xcassets */,
A920C2D62D24061300E4F9B1 /* MineSwift.entitlements */,
A920C2D72D24061300E4F9B1 /* Preview Content */,
);
path = MineSwift;
sourceTree = "<group>";
};
A920C2D72D24061300E4F9B1 /* Preview Content */ = {
isa = PBXGroup;
children = (
A920C2D82D24061300E4F9B1 /* Preview Assets.xcassets */,
);
path = "Preview Content";
sourceTree = "<group>";
};
A920C2E12D24061400E4F9B1 /* MineSwiftTests */ = {
isa = PBXGroup;
children = (
A920C2E22D24061400E4F9B1 /* MineSwiftTests.swift */,
);
path = MineSwiftTests;
sourceTree = "<group>";
};
A920C2EB2D24061400E4F9B1 /* MineSwiftUITests */ = {
isa = PBXGroup;
children = (
A920C2EC2D24061400E4F9B1 /* MineSwiftUITests.swift */,
A920C2EE2D24061400E4F9B1 /* MineSwiftUITestsLaunchTests.swift */,
);
path = MineSwiftUITests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
A9AE20042D063AAD00200A07 /* MineSwift */ = {
A920C2CA2D24060E00E4F9B1 /* MineSwift */ = {
isa = PBXNativeTarget;
buildConfigurationList = A9AE202A2D063AB200200A07 /* Build configuration list for PBXNativeTarget "MineSwift" */;
buildConfigurationList = A920C2F22D24061400E4F9B1 /* Build configuration list for PBXNativeTarget "MineSwift" */;
buildPhases = (
A9AE20012D063AAD00200A07 /* Sources */,
A9AE20022D063AAD00200A07 /* Frameworks */,
A9AE20032D063AAD00200A07 /* Resources */,
A920C2C72D24060E00E4F9B1 /* Sources */,
A920C2C82D24060E00E4F9B1 /* Frameworks */,
A920C2C92D24060E00E4F9B1 /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
A9AE20072D063AAD00200A07 /* MineSwift */,
);
name = MineSwift;
packageProductDependencies = (
);
productName = MineSwift;
productReference = A9AE20052D063AAD00200A07 /* MineSwift.app */;
productReference = A920C2CB2D24060E00E4F9B1 /* MineSwift.app */;
productType = "com.apple.product-type.application";
};
A9AE20152D063AB200200A07 /* MineSwiftTests */ = {
A920C2DD2D24061400E4F9B1 /* MineSwiftTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = A9AE202D2D063AB200200A07 /* Build configuration list for PBXNativeTarget "MineSwiftTests" */;
buildConfigurationList = A920C2F52D24061400E4F9B1 /* Build configuration list for PBXNativeTarget "MineSwiftTests" */;
buildPhases = (
A9AE20122D063AB200200A07 /* Sources */,
A9AE20132D063AB200200A07 /* Frameworks */,
A9AE20142D063AB200200A07 /* Resources */,
A920C2DA2D24061400E4F9B1 /* Sources */,
A920C2DB2D24061400E4F9B1 /* Frameworks */,
A920C2DC2D24061400E4F9B1 /* Resources */,
);
buildRules = (
);
dependencies = (
A9AE20182D063AB200200A07 /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
A9AE20192D063AB200200A07 /* MineSwiftTests */,
A920C2E02D24061400E4F9B1 /* PBXTargetDependency */,
);
name = MineSwiftTests;
packageProductDependencies = (
);
productName = MineSwiftTests;
productReference = A9AE20162D063AB200200A07 /* MineSwiftTests.xctest */;
productReference = A920C2DE2D24061400E4F9B1 /* MineSwiftTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
A9AE201F2D063AB200200A07 /* MineSwiftUITests */ = {
A920C2E72D24061400E4F9B1 /* MineSwiftUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = A9AE20302D063AB200200A07 /* Build configuration list for PBXNativeTarget "MineSwiftUITests" */;
buildConfigurationList = A920C2F82D24061400E4F9B1 /* Build configuration list for PBXNativeTarget "MineSwiftUITests" */;
buildPhases = (
A9AE201C2D063AB200200A07 /* Sources */,
A9AE201D2D063AB200200A07 /* Frameworks */,
A9AE201E2D063AB200200A07 /* Resources */,
A920C2E42D24061400E4F9B1 /* Sources */,
A920C2E52D24061400E4F9B1 /* Frameworks */,
A920C2E62D24061400E4F9B1 /* Resources */,
);
buildRules = (
);
dependencies = (
A9AE20222D063AB200200A07 /* PBXTargetDependency */,
);
fileSystemSynchronizedGroups = (
A9AE20232D063AB200200A07 /* MineSwiftUITests */,
A920C2EA2D24061400E4F9B1 /* PBXTargetDependency */,
);
name = MineSwiftUITests;
packageProductDependencies = (
);
productName = MineSwiftUITests;
productReference = A9AE20202D063AB200200A07 /* MineSwiftUITests.xctest */;
productReference = A920C2E82D24061400E4F9B1 /* MineSwiftUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
A9AE1FFD2D063AAC00200A07 /* Project object */ = {
A920C2C32D24060E00E4F9B1 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1610;
LastUpgradeCheck = 1610;
LastSwiftUpdateCheck = 1540;
LastUpgradeCheck = 1540;
TargetAttributes = {
A9AE20042D063AAD00200A07 = {
CreatedOnToolsVersion = 16.1;
A920C2CA2D24060E00E4F9B1 = {
CreatedOnToolsVersion = 15.4;
};
A9AE20152D063AB200200A07 = {
CreatedOnToolsVersion = 16.1;
TestTargetID = A9AE20042D063AAD00200A07;
A920C2DD2D24061400E4F9B1 = {
CreatedOnToolsVersion = 15.4;
TestTargetID = A920C2CA2D24060E00E4F9B1;
};
A9AE201F2D063AB200200A07 = {
CreatedOnToolsVersion = 16.1;
TestTargetID = A9AE20042D063AAD00200A07;
A920C2E72D24061400E4F9B1 = {
CreatedOnToolsVersion = 15.4;
TestTargetID = A920C2CA2D24060E00E4F9B1;
};
};
};
buildConfigurationList = A9AE20002D063AAC00200A07 /* Build configuration list for PBXProject "MineSwift" */;
buildConfigurationList = A920C2C62D24060E00E4F9B1 /* Build configuration list for PBXProject "MineSwift" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = A9AE1FFC2D063AAC00200A07;
minimizedProjectReferenceProxies = 1;
preferredProjectObjectVersion = 77;
productRefGroup = A9AE20062D063AAD00200A07 /* Products */;
mainGroup = A920C2C22D24060E00E4F9B1;
productRefGroup = A920C2CC2D24060E00E4F9B1 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
A9AE20042D063AAD00200A07 /* MineSwift */,
A9AE20152D063AB200200A07 /* MineSwiftTests */,
A9AE201F2D063AB200200A07 /* MineSwiftUITests */,
A920C2CA2D24060E00E4F9B1 /* MineSwift */,
A920C2DD2D24061400E4F9B1 /* MineSwiftTests */,
A920C2E72D24061400E4F9B1 /* MineSwiftUITests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
A9AE20032D063AAD00200A07 /* Resources */ = {
A920C2C92D24060E00E4F9B1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9E0E5802D082C67007683B6 /* README.md in Resources */,
A920C2D92D24061300E4F9B1 /* Preview Assets.xcassets in Resources */,
A920C2D52D24061300E4F9B1 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9AE20142D063AB200200A07 /* Resources */ = {
A920C2DC2D24061400E4F9B1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
A9AE201E2D063AB200200A07 /* Resources */ = {
A920C2E62D24061400E4F9B1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -239,44 +264,52 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
A9AE20012D063AAD00200A07 /* Sources */ = {
A920C2C72D24060E00E4F9B1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A920C2D12D24060E00E4F9B1 /* ContentView.swift in Sources */,
A920C2D32D24060E00E4F9B1 /* Item.swift in Sources */,
A920C2CF2D24060E00E4F9B1 /* MineSwiftApp.swift in Sources */,
A920C3012D2406B500E4F9B1 /* MinesweeperView.swift in Sources */,
A920C3022D2406B600E4F9B1 /* MinesweeperGame.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9AE20122D063AB200200A07 /* Sources */ = {
A920C2DA2D24061400E4F9B1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A920C2E32D24061400E4F9B1 /* MineSwiftTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9AE201C2D063AB200200A07 /* Sources */ = {
A920C2E42D24061400E4F9B1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A920C2ED2D24061400E4F9B1 /* MineSwiftUITests.swift in Sources */,
A920C2EF2D24061400E4F9B1 /* MineSwiftUITestsLaunchTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
A9AE20182D063AB200200A07 /* PBXTargetDependency */ = {
A920C2E02D24061400E4F9B1 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = A9AE20042D063AAD00200A07 /* MineSwift */;
targetProxy = A9AE20172D063AB200200A07 /* PBXContainerItemProxy */;
target = A920C2CA2D24060E00E4F9B1 /* MineSwift */;
targetProxy = A920C2DF2D24061400E4F9B1 /* PBXContainerItemProxy */;
};
A9AE20222D063AB200200A07 /* PBXTargetDependency */ = {
A920C2EA2D24061400E4F9B1 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = A9AE20042D063AAD00200A07 /* MineSwift */;
targetProxy = A9AE20212D063AB200200A07 /* PBXContainerItemProxy */;
target = A920C2CA2D24060E00E4F9B1 /* MineSwift */;
targetProxy = A920C2E92D24061400E4F9B1 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
A9AE20282D063AB200200A07 /* Debug */ = {
A920C2F02D24061400E4F9B1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -337,7 +370,7 @@
};
name = Debug;
};
A9AE20292D063AB200200A07 /* Release */ = {
A920C2F12D24061400E4F9B1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -390,7 +423,7 @@
};
name = Release;
};
A9AE202B2D063AB200200A07 /* Debug */ = {
A920C2F32D24061400E4F9B1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -399,7 +432,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"MineSwift/Preview Content\"";
DEVELOPMENT_TEAM = 8626DL2GW3;
DEVELOPMENT_TEAM = P6PV2R9443;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -413,24 +446,22 @@
"INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 16;
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 13;
MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.neon443.MineSwift;
PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.MineSwift;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
XROS_DEPLOYMENT_TARGET = 2.1;
};
name = Debug;
};
A9AE202C2D063AB200200A07 /* Release */ = {
A920C2F42D24061400E4F9B1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -439,7 +470,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"MineSwift/Preview Content\"";
DEVELOPMENT_TEAM = 8626DL2GW3;
DEVELOPMENT_TEAM = P6PV2R9443;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -453,153 +484,151 @@
"INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 16;
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 13;
MACOSX_DEPLOYMENT_TARGET = 14.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.neon443.MineSwift;
PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.MineSwift;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
XROS_DEPLOYMENT_TARGET = 2.1;
};
name = Release;
};
A9AE202E2D063AB200200A07 /* Debug */ = {
A920C2F62D24061400E4F9B1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 8626DL2GW3;
DEVELOPMENT_TEAM = P6PV2R9443;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.1;
MACOSX_DEPLOYMENT_TARGET = 15.1;
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
MACOSX_DEPLOYMENT_TARGET = 14.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.neon443.MineSwiftTests;
PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.MineSwiftTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2,7";
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MineSwift.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MineSwift";
XROS_DEPLOYMENT_TARGET = 2.1;
};
name = Debug;
};
A9AE202F2D063AB200200A07 /* Release */ = {
A920C2F72D24061400E4F9B1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 8626DL2GW3;
DEVELOPMENT_TEAM = P6PV2R9443;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.1;
MACOSX_DEPLOYMENT_TARGET = 15.1;
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
MACOSX_DEPLOYMENT_TARGET = 14.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.neon443.MineSwiftTests;
PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.MineSwiftTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2,7";
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MineSwift.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MineSwift";
XROS_DEPLOYMENT_TARGET = 2.1;
};
name = Release;
};
A9AE20312D063AB200200A07 /* Debug */ = {
A920C2F92D24061400E4F9B1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 8626DL2GW3;
DEVELOPMENT_TEAM = P6PV2R9443;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.1;
MACOSX_DEPLOYMENT_TARGET = 15.1;
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
MACOSX_DEPLOYMENT_TARGET = 14.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.neon443.MineSwiftUITests;
PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.MineSwiftUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2,7";
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = MineSwift;
XROS_DEPLOYMENT_TARGET = 2.1;
};
name = Debug;
};
A9AE20322D063AB200200A07 /* Release */ = {
A920C2FA2D24061400E4F9B1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 8626DL2GW3;
DEVELOPMENT_TEAM = P6PV2R9443;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 18.1;
MACOSX_DEPLOYMENT_TARGET = 15.1;
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
MACOSX_DEPLOYMENT_TARGET = 14.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.neon443.MineSwiftUITests;
PRODUCT_BUNDLE_IDENTIFIER = dev.neon443.MineSwiftUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2,7";
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = MineSwift;
XROS_DEPLOYMENT_TARGET = 2.1;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
A9AE20002D063AAC00200A07 /* Build configuration list for PBXProject "MineSwift" */ = {
A920C2C62D24060E00E4F9B1 /* Build configuration list for PBXProject "MineSwift" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A9AE20282D063AB200200A07 /* Debug */,
A9AE20292D063AB200200A07 /* Release */,
A920C2F02D24061400E4F9B1 /* Debug */,
A920C2F12D24061400E4F9B1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A9AE202A2D063AB200200A07 /* Build configuration list for PBXNativeTarget "MineSwift" */ = {
A920C2F22D24061400E4F9B1 /* Build configuration list for PBXNativeTarget "MineSwift" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A9AE202B2D063AB200200A07 /* Debug */,
A9AE202C2D063AB200200A07 /* Release */,
A920C2F32D24061400E4F9B1 /* Debug */,
A920C2F42D24061400E4F9B1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A9AE202D2D063AB200200A07 /* Build configuration list for PBXNativeTarget "MineSwiftTests" */ = {
A920C2F52D24061400E4F9B1 /* Build configuration list for PBXNativeTarget "MineSwiftTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A9AE202E2D063AB200200A07 /* Debug */,
A9AE202F2D063AB200200A07 /* Release */,
A920C2F62D24061400E4F9B1 /* Debug */,
A920C2F72D24061400E4F9B1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A9AE20302D063AB200200A07 /* Build configuration list for PBXNativeTarget "MineSwiftUITests" */ = {
A920C2F82D24061400E4F9B1 /* Build configuration list for PBXNativeTarget "MineSwiftUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A9AE20312D063AB200200A07 /* Debug */,
A9AE20322D063AB200200A07 /* Release */,
A920C2F92D24061400E4F9B1 /* Debug */,
A920C2FA2D24061400E4F9B1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = A9AE1FFD2D063AAC00200A07 /* Project object */;
rootObject = A920C2C32D24060E00E4F9B1 /* Project object */;
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@@ -5,28 +5,6 @@
"platform" : "ios",
"size" : "1024x1024"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "tinted"
}
],
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
},
{
"idiom" : "mac",
"scale" : "1x",

18
MineSwift/Item.swift Normal file
View File

@@ -0,0 +1,18 @@
//
// Item.swift
// MineSwift
//
// Created by Nihaal Sharma on 31/12/2024.
//
import Foundation
import SwiftData
@Model
final class Item {
var timestamp: Date
init(timestamp: Date) {
self.timestamp = timestamp
}
}

View File

@@ -21,26 +21,36 @@ struct MinesweeperView: View {
let cols: Int
let bombs: Int
@State var flag: Bool = false
@State private var flag: Bool = false
@State private var hoveredCell: (Int, Int)? = nil
var body: some View {
VStack {
VStack(spacing: 0) {
ForEach(0..<rows, id: \.self) { row in
ForEach(0..<rows, id: \..self) { row in
HStack(spacing: 0) {
ForEach(0..<cols, id: \.self) { col in
ForEach(0..<cols, id: \..self) { col in
Button(action: {
if flag {
game.flagCell(row: row, col: col)
} else if !flag {
} else {
game.revealCell(row: row, col: col)
}
}) {
CellView(cell: game.board[row][col], game: game)
CellView(cell: game.board[row][col], isHighlighted: isNeighborHovered(row: row, col: col))
.frame(width: 30, height: 30)
.border(Color.gray.opacity(0.2))
.animation(.easeInOut(duration: 0.3), value: isNeighborHovered(row: row, col: col))
}
.buttonStyle(PlainButtonStyle())
.onHover { isHovering in
withAnimation {
hoveredCell = isHovering ? (row, col) : nil
}
}
.onTapGesture(count: 2) {
game.flagCell(row: row, col: col)
}
}
}
}
@@ -49,9 +59,10 @@ struct MinesweeperView: View {
List {
Toggle(isOn: $flag, label: {
Text("flag")
Text("Flag Mode")
})
.padding(.bottom)
Text("Total Bombs: \(bombs)")
.padding()
.frame(alignment: .center)
@@ -69,19 +80,29 @@ struct MinesweeperView: View {
}
.padding()
}
private func isNeighborHovered(row: Int, col: Int) -> Bool {
guard let hovered = hoveredCell else { return false }
let (hoveredRow, hoveredCol) = hovered
return abs(row - hoveredRow) <= 1 && abs(col - hoveredCol) <= 1
}
}
struct CellView: View {
var cell: MinesweeperGame.Cell
var game: MinesweeperGame
var isHighlighted: Bool
var body: some View {
ZStack {
if cell.state == .revealed {
if isHighlighted {
Color.gray.opacity(0.1)
.animation(.easeInOut(duration: 0.3), value: isHighlighted)
} else if cell.state == .revealed {
Color.black
} else {
Color.blue
}
if cell.state == .revealed {
if cell.isMine {
Image(systemName: "multiply")
@@ -111,4 +132,3 @@ struct CellView: View {
#Preview {
MinesweeperView(rows: 10, cols: 10, bombs: 5)
}

View File

@@ -2,15 +2,34 @@
// MineSwiftTests.swift
// MineSwiftTests
//
// Created by Nihaal Sharma on 08/12/2024.
// Created by Nihaal Sharma on 31/12/2024.
//
import Testing
import XCTest
struct MineSwiftTests {
final class MineSwiftTests: XCTestCase {
@Test func example() async throws {
// Write your test here and use APIs like `#expect(...)` to check expected conditions.
override func setUpWithError() throws {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() throws {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
// Any test you write for XCTest can be annotated as throws and async.
// Mark your test throws to produce an unexpected failure when your test encounters an uncaught error.
// Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards.
}
func testPerformanceExample() throws {
// This is an example of a performance test case.
measure {
// Put the code you want to measure the time of here.
}
}
}

View File

@@ -2,7 +2,7 @@
// MineSwiftUITests.swift
// MineSwiftUITests
//
// Created by Nihaal Sharma on 08/12/2024.
// Created by Nihaal Sharma on 31/12/2024.
//
import XCTest
@@ -22,7 +22,6 @@ final class MineSwiftUITests: XCTestCase {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
@MainActor
func testExample() throws {
// UI tests must launch the application that they test.
let app = XCUIApplication()
@@ -31,7 +30,6 @@ final class MineSwiftUITests: XCTestCase {
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
@MainActor
func testLaunchPerformance() throws {
if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) {
// This measures how long it takes to launch your application.

View File

@@ -2,7 +2,7 @@
// MineSwiftUITestsLaunchTests.swift
// MineSwiftUITests
//
// Created by Nihaal Sharma on 08/12/2024.
// Created by Nihaal Sharma on 31/12/2024.
//
import XCTest
@@ -17,7 +17,6 @@ final class MineSwiftUITestsLaunchTests: XCTestCase {
continueAfterFailure = false
}
@MainActor
func testLaunch() throws {
let app = XCUIApplication()
app.launch()