Changes
20 changed files (+1020/-1)
-
-
@@ -1,7 +1,8 @@{ "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.0/.schema/devbox.schema.json", "include": [ "path:./gtk/plugin.json" "path:./gtk/plugin.json", "path:./macos/plugin.json" ], "packages": { "reuse": {
-
-
-
@@ -404,6 +404,54 @@ "store_path": "/nix/store/6fbc43q7xs8ql2wvnamgs0hn2596ydrh-python3.12-reuse-5.0.2"} } }, "swift-format@5.8": { "last_modified": "2025-03-23T05:31:05Z", "resolved": "github:NixOS/nixpkgs/dd613136ee91f67e5dba3f3f41ac99ae89c5406b#swift-format", "source": "devbox-search", "version": "5.8", "systems": { "aarch64-darwin": { "outputs": [ { "name": "out", "path": "/nix/store/24crxpvg024sdjbbj0592y0cfz9is0m4-swift-format-5.8", "default": true } ], "store_path": "/nix/store/24crxpvg024sdjbbj0592y0cfz9is0m4-swift-format-5.8" }, "aarch64-linux": { "outputs": [ { "name": "out", "path": "/nix/store/fxwd38h22q9sl0hagrrrdkilkgmhqgw3-swift-format-5.8", "default": true } ], "store_path": "/nix/store/fxwd38h22q9sl0hagrrrdkilkgmhqgw3-swift-format-5.8" }, "x86_64-darwin": { "outputs": [ { "name": "out", "path": "/nix/store/w0chq085fkbk1fzvzpnzmdkzfn4wmrjf-swift-format-5.8", "default": true } ], "store_path": "/nix/store/w0chq085fkbk1fzvzpnzmdkzfn4wmrjf-swift-format-5.8" }, "x86_64-linux": { "outputs": [ { "name": "out", "path": "/nix/store/fp2hx0sx6x82r3x57mm1y2886i1lz9ln-swift-format-5.8", "default": true } ], "store_path": "/nix/store/fp2hx0sx6x82r3x57mm1y2886i1lz9ln-swift-format-5.8" } } }, "uncrustify@0.80": { "last_modified": "2025-03-11T17:52:14Z", "resolved": "github:NixOS/nixpkgs/0d534853a55b5d02a4ababa1d71921ce8f0aee4c#uncrustify",
-
-
-
@@ -41,11 +41,16 @@ {"exts": ["vala"], "command": "uncrustify -c uncrustify.cfg -l VALA", }, { "exts": ["swift"], "command": "swift-format --configuration macos/swift-format.json", }, ], }, "plugins": [ "https://plugins.dprint.dev/json-0.20.0.wasm", "https://plugins.dprint.dev/markdown-0.18.0.wasm", "https://plugins.dprint.dev/exec-0.5.1.json@492414e39dea4dccc07b4af796d2f4efdb89e84bae2bd4e1e924c0cc050855bf", "https://plugins.dprint.dev/toml-0.7.0.wasm", ], }
-
-
macos/.gitignore (new)
-
@@ -0,0 +1,22 @@# Copyright 2025 Shota FUJI # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # SPDX-License-Identifier: Apache-2.0 # What: XCode's user specifc data. xcuserdata/ # What: Clang header maps. # Why: https://github.com/github/gitignore/blob/main/Swift.gitignore *.hmap
-
-
macos/REUSE.toml (new)
-
@@ -0,0 +1,6 @@version = 1 [[annotations]] path = ["plac/**/*.json", "plac/**/*.entitlements", "plac.xcodeproj/**/*"] SPDX-FileCopyrightText = "Shota FUJI" SPDX-License-Identifier = "Apache-2.0"
-
-
-
@@ -0,0 +1,588 @@// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 77; objects = { /* Begin PBXContainerItemProxy section */ C3EABC802DB1170700F786D6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = C3EABC692DB1170400F786D6 /* Project object */; proxyType = 1; remoteGlobalIDString = C3EABC702DB1170400F786D6; remoteInfo = plac; }; C3EABC8A2DB1170700F786D6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = C3EABC692DB1170400F786D6 /* Project object */; proxyType = 1; remoteGlobalIDString = C3EABC702DB1170400F786D6; remoteInfo = plac; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ C3EABC712DB1170400F786D6 /* plac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = plac.app; sourceTree = BUILT_PRODUCTS_DIR; }; C3EABC7F2DB1170700F786D6 /* placTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = placTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C3EABC892DB1170700F786D6 /* placUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = placUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ C3EABC732DB1170400F786D6 /* plac */ = { isa = PBXFileSystemSynchronizedRootGroup; path = plac; sourceTree = "<group>"; }; C3EABC822DB1170700F786D6 /* placTests */ = { isa = PBXFileSystemSynchronizedRootGroup; path = placTests; sourceTree = "<group>"; }; C3EABC8C2DB1170700F786D6 /* placUITests */ = { isa = PBXFileSystemSynchronizedRootGroup; path = placUITests; sourceTree = "<group>"; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ C3EABC6E2DB1170400F786D6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; C3EABC7C2DB1170700F786D6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; C3EABC862DB1170700F786D6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ C3EABC682DB1170400F786D6 = { isa = PBXGroup; children = ( C3EABC732DB1170400F786D6 /* plac */, C3EABC822DB1170700F786D6 /* placTests */, C3EABC8C2DB1170700F786D6 /* placUITests */, C3EABC722DB1170400F786D6 /* Products */, ); sourceTree = "<group>"; }; C3EABC722DB1170400F786D6 /* Products */ = { isa = PBXGroup; children = ( C3EABC712DB1170400F786D6 /* plac.app */, C3EABC7F2DB1170700F786D6 /* placTests.xctest */, C3EABC892DB1170700F786D6 /* placUITests.xctest */, ); name = Products; sourceTree = "<group>"; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ C3EABC702DB1170400F786D6 /* plac */ = { isa = PBXNativeTarget; buildConfigurationList = C3EABC932DB1170700F786D6 /* Build configuration list for PBXNativeTarget "plac" */; buildPhases = ( C3EABC6D2DB1170400F786D6 /* Sources */, C3EABC6E2DB1170400F786D6 /* Frameworks */, C3EABC6F2DB1170400F786D6 /* Resources */, ); buildRules = ( ); dependencies = ( ); fileSystemSynchronizedGroups = ( C3EABC732DB1170400F786D6 /* plac */, ); name = plac; packageProductDependencies = ( ); productName = plac; productReference = C3EABC712DB1170400F786D6 /* plac.app */; productType = "com.apple.product-type.application"; }; C3EABC7E2DB1170700F786D6 /* placTests */ = { isa = PBXNativeTarget; buildConfigurationList = C3EABC962DB1170700F786D6 /* Build configuration list for PBXNativeTarget "placTests" */; buildPhases = ( C3EABC7B2DB1170700F786D6 /* Sources */, C3EABC7C2DB1170700F786D6 /* Frameworks */, C3EABC7D2DB1170700F786D6 /* Resources */, ); buildRules = ( ); dependencies = ( C3EABC812DB1170700F786D6 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( C3EABC822DB1170700F786D6 /* placTests */, ); name = placTests; packageProductDependencies = ( ); productName = placTests; productReference = C3EABC7F2DB1170700F786D6 /* placTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; C3EABC882DB1170700F786D6 /* placUITests */ = { isa = PBXNativeTarget; buildConfigurationList = C3EABC992DB1170700F786D6 /* Build configuration list for PBXNativeTarget "placUITests" */; buildPhases = ( C3EABC852DB1170700F786D6 /* Sources */, C3EABC862DB1170700F786D6 /* Frameworks */, C3EABC872DB1170700F786D6 /* Resources */, ); buildRules = ( ); dependencies = ( C3EABC8B2DB1170700F786D6 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( C3EABC8C2DB1170700F786D6 /* placUITests */, ); name = placUITests; packageProductDependencies = ( ); productName = placUITests; productReference = C3EABC892DB1170700F786D6 /* placUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ C3EABC692DB1170400F786D6 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1630; LastUpgradeCheck = 1630; TargetAttributes = { C3EABC702DB1170400F786D6 = { CreatedOnToolsVersion = 16.3; }; C3EABC7E2DB1170700F786D6 = { CreatedOnToolsVersion = 16.3; TestTargetID = C3EABC702DB1170400F786D6; }; C3EABC882DB1170700F786D6 = { CreatedOnToolsVersion = 16.3; TestTargetID = C3EABC702DB1170400F786D6; }; }; }; buildConfigurationList = C3EABC6C2DB1170400F786D6 /* Build configuration list for PBXProject "plac" */; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = C3EABC682DB1170400F786D6; minimizedProjectReferenceProxies = 1; preferredProjectObjectVersion = 77; productRefGroup = C3EABC722DB1170400F786D6 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( C3EABC702DB1170400F786D6 /* plac */, C3EABC7E2DB1170700F786D6 /* placTests */, C3EABC882DB1170700F786D6 /* placUITests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ C3EABC6F2DB1170400F786D6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; C3EABC7D2DB1170700F786D6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; C3EABC872DB1170700F786D6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ C3EABC6D2DB1170400F786D6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; C3EABC7B2DB1170700F786D6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; C3EABC852DB1170700F786D6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ C3EABC812DB1170700F786D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = C3EABC702DB1170400F786D6 /* plac */; targetProxy = C3EABC802DB1170700F786D6 /* PBXContainerItemProxy */; }; C3EABC8B2DB1170700F786D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = C3EABC702DB1170400F786D6 /* plac */; targetProxy = C3EABC8A2DB1170700F786D6 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ C3EABC912DB1170700F786D6 /* Debug */ = { isa = XCBuildConfiguration; 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_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); 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; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; C3EABC922DB1170700F786D6 /* Release */ = { isa = XCBuildConfiguration; 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-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; GCC_NO_COMMON_BLOCKS = YES; 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 = NO; MTL_FAST_MATH = YES; SWIFT_COMPILATION_MODE = wholemodule; }; name = Release; }; C3EABC942DB1170700F786D6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = plac/plac.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; 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"; IPHONEOS_DEPLOYMENT_TARGET = 18.4; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.3; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = jp.pocka.plac; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; SDKROOT = auto; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; XROS_DEPLOYMENT_TARGET = 2.4; }; name = Debug; }; C3EABC952DB1170700F786D6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = plac/plac.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; 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"; IPHONEOS_DEPLOYMENT_TARGET = 18.4; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.3; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = jp.pocka.plac; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; SDKROOT = auto; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; XROS_DEPLOYMENT_TARGET = 2.4; }; name = Release; }; C3EABC972DB1170700F786D6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 18.4; MACOSX_DEPLOYMENT_TARGET = 15.3; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = jp.pocka.placTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/plac.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/plac"; XROS_DEPLOYMENT_TARGET = 2.4; }; name = Debug; }; C3EABC982DB1170700F786D6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 18.4; MACOSX_DEPLOYMENT_TARGET = 15.3; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = jp.pocka.placTests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/plac.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/plac"; XROS_DEPLOYMENT_TARGET = 2.4; }; name = Release; }; C3EABC9A2DB1170700F786D6 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 18.4; MACOSX_DEPLOYMENT_TARGET = 15.3; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = jp.pocka.placUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; TEST_TARGET_NAME = plac; XROS_DEPLOYMENT_TARGET = 2.4; }; name = Debug; }; C3EABC9B2DB1170700F786D6 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 18.4; MACOSX_DEPLOYMENT_TARGET = 15.3; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = jp.pocka.placUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; TEST_TARGET_NAME = plac; XROS_DEPLOYMENT_TARGET = 2.4; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ C3EABC6C2DB1170400F786D6 /* Build configuration list for PBXProject "plac" */ = { isa = XCConfigurationList; buildConfigurations = ( C3EABC912DB1170700F786D6 /* Debug */, C3EABC922DB1170700F786D6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; C3EABC932DB1170700F786D6 /* Build configuration list for PBXNativeTarget "plac" */ = { isa = XCConfigurationList; buildConfigurations = ( C3EABC942DB1170700F786D6 /* Debug */, C3EABC952DB1170700F786D6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; C3EABC962DB1170700F786D6 /* Build configuration list for PBXNativeTarget "placTests" */ = { isa = XCConfigurationList; buildConfigurations = ( C3EABC972DB1170700F786D6 /* Debug */, C3EABC982DB1170700F786D6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; C3EABC992DB1170700F786D6 /* Build configuration list for PBXNativeTarget "placUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( C3EABC9A2DB1170700F786D6 /* Debug */, C3EABC9B2DB1170700F786D6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = C3EABC692DB1170400F786D6 /* Project object */; }
-
-
-
@@ -0,0 +1,7 @@<?xml version="1.0" encoding="UTF-8"?> <Workspace version = "1.0"> <FileRef location = "self:"> </FileRef> </Workspace>
-
-
-
@@ -0,0 +1,11 @@{ "colors": [ { "idiom": "universal" } ], "info": { "author": "xcode", "version": 1 } }
-
-
-
@@ -0,0 +1,85 @@{ "images": [ { "idiom": "universal", "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", "size": "16x16" }, { "idiom": "mac", "scale": "2x", "size": "16x16" }, { "idiom": "mac", "scale": "1x", "size": "32x32" }, { "idiom": "mac", "scale": "2x", "size": "32x32" }, { "idiom": "mac", "scale": "1x", "size": "128x128" }, { "idiom": "mac", "scale": "2x", "size": "128x128" }, { "idiom": "mac", "scale": "1x", "size": "256x256" }, { "idiom": "mac", "scale": "2x", "size": "256x256" }, { "idiom": "mac", "scale": "1x", "size": "512x512" }, { "idiom": "mac", "scale": "2x", "size": "512x512" } ], "info": { "author": "xcode", "version": 1 } }
-
-
-
@@ -0,0 +1,6 @@{ "info": { "author": "xcode", "version": 1 } }
-
-
-
@@ -0,0 +1,33 @@// Copyright 2025 Shota FUJI // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 import SwiftUI struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") } .padding() } } #Preview{ ContentView() }
-
-
-
@@ -0,0 +1,10 @@<?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>com.apple.security.app-sandbox</key> <true/> <key>com.apple.security.files.user-selected.read-only</key> <true/> </dict> </plist>
-
-
macos/plac/placApp.swift (new)
-
@@ -0,0 +1,26 @@// Copyright 2025 Shota FUJI // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 import SwiftUI @main struct placApp: App { var body: some Scene { WindowGroup { ContentView() } } }
-
-
-
@@ -0,0 +1,25 @@// Copyright 2025 Shota FUJI // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 import Testing struct placTests { @Test func example() async throws { // Write your test here and use APIs like `#expect(...)` to check expected conditions. } }
-
-
-
@@ -0,0 +1,50 @@// Copyright 2025 Shota FUJI // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 import XCTest final class placUITests: XCTestCase { override func setUpWithError() throws { // Put setup code here. This method is called before the invocation of each test method in the class. // In UI tests it is usually best to stop immediately when a failure occurs. continueAfterFailure = false // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. } override func tearDownWithError() throws { // 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() app.launch() // Use XCTAssert and related functions to verify your tests produce the correct results. } @MainActor func testLaunchPerformance() throws { // This measures how long it takes to launch your application. measure(metrics: [XCTApplicationLaunchMetric()]) { XCUIApplication().launch() } } }
-
-
-
@@ -0,0 +1,42 @@// Copyright 2025 Shota FUJI // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 import XCTest final class placUITestsLaunchTests: XCTestCase { override class var runsForEachTargetApplicationUIConfiguration: Bool { true } override func setUpWithError() throws { continueAfterFailure = false } @MainActor func testLaunch() throws { let app = XCUIApplication() app.launch() // Insert steps here to perform after app launch but before taking a screenshot, // such as logging into a test account or navigating somewhere in the app let attachment = XCTAttachment(screenshot: app.screenshot()) attachment.name = "Launch Screen" attachment.lifetime = .keepAlways add(attachment) } }
-
-
macos/plugin.json (new)
-
@@ -0,0 +1,7 @@{ "name": "plac-macos", "description": "macOS build tooling", "packages": { "swift-format": "5.8" } }
-
-
-
@@ -0,0 +1,19 @@Copyright 2025 Shota FUJI Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. SPDX-License-Identifier: Apache-2.0 === Devbox configuration for macOS package.
-
-
macos/swift-format.json (new)
-
@@ -0,0 +1,7 @@{ "version": 1, "lineLength": 100, "indentation": { "tabs": 1 } }
-
-
-
@@ -0,0 +1,21 @@Copyright 2025 Shota FUJI Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. SPDX-License-Identifier: Apache-2.0 === Config file for swift-format tool. https://github.com/swiftlang/swift-format/blob/dffadd6073bc1af2abb0a743301c5bdec27a9829/Documentation/Configuration.md
-