From b9ed5217f0379988d25b6ae301e82a0aad996aca Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 01:03:38 +0900 Subject: [PATCH 1/7] build: Add watchOS and visionOS build target It appears that you have added new `PBXHeadersBuildPhase` sections for the `Punycode.h` file in different locations (`A79A971B2C78CF210079CCA8` and `A79A97352C78CF930079CCA8`) within your Xcode project's build settings. This is a good practice to ensure that the header file is included in the correct target(s) for your project. If you encounter any issues or have questions about these changes, feel free to ask! I'm here to help. It appears you've added new build phases and dependencies to your Xcode project file (`.xcodeproj`). Here's a brief explanation of what each addition does: 1. `A79A97232C78CF220079CCA8 /* Sources */`: This is a new build phase for Swift source files, which includes the file `Punycode.swift`. 2. `A79A97512C78D0080079CCA8 /* PunycodeTests.swift in Sources */`: This is a new test target for the Swift source file `PunycodeTests.swift`. 3. `A79A972A2C78CF220079CCA8 /* PBXTargetDependency */` and `A79A97442C78CF940079CCA8 /* PBXTargetDependency */`: These are new dependencies for the watchOS, visionOS, and iOS targets. They depend on the Punycode target. Without more context, it's hard to say exactly what these changes will do in your project. However, they seem to be setting up a Swift file (Punycode) and its test file (PunycodeTests), and adding dependencies for this new target on other targets within your project. This appears to be a configuration file for an Xcode project, specifically for a Swift-based iOS application called "Punycode". The file defines two build configurations: `Release` and `Debug`. Here's a brief overview of the settings: 1. **Framework Search Paths**: The paths where Xcode should look for frameworks when building the project. This includes both user-defined paths (`YOUR_PROJECT_PATH/Frameworks`) and built-in ones (`@loader_path/Frameworks`). 2. **LOCALIZATION_PREFERS_STRING_CATALOGS**: Enables localization for the project. 3. **MACOSX_DEPLOYMENT_TARGET**: The minimum macOS version required to run the app, set to 10.13 (High Sierra). 4. **MODULE_VERIFIER_SUPPORTED_LANGUAGES and MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS**: Specify the Objective-C and Swift language standards supported by the module verifier. 5. **PRODUCT_BUNDLE_IDENTIFIER**: The unique identifier for the app bundle, set to `com.gumob.Punycode`. 6. **PRODUCT_NAME**: The name of the product (app), which is derived from the project name with some modifications (`$(PROJECT_NAME:c99extidentifier)`). 7. **SDKROOT**: The root directory for the SDK being used, set to `xros`. 8. **SKIP_INSTALL**, **SUPPORTED_PLATFORMS**, **SWIFT_EMIT_LOC_STRINGS**, **SWIFT_INSTALL_OBJC_HEADER**, **SWIFT_VERSION**, **TARGETED_DEVICE_FAMILY**, **TVOS_DEPLOYMENT_TARGET**, **WATCHOS_DEPLOYMENT_TARGET**, and **XROS_DEPLOYMENT_TARGET**: Various settings related to the build process, such as supported platforms, Swift version, targeted device family, and deployment targets for different platforms like tvOS, watchOS, and XROS. 9. The `name` key defines the name of each configuration: `Release` and `Debug`. The `Debug` configuration has additional settings related to code signing, provisioning profiles, and Swift-specific options such as emitting location strings and active compilation conditions. feat(Xcode): Add Release and Debug configurations with updated build settings for Swift 5.0, C++17, and other improvements. It appears you have added support for watchOS, xROS, and possibly visionOS in your Swift project. The `WATCHOS_DEPLOYMENT_TARGET`, `XROS_DEPLOYMENT_TARGET`, and potentially other deployment targets have been added to the build settings. Here's a brief explanation of what each line does: 1. `SWIFT_VERSION = 5.0;` - Sets the Swift version for your project to 5.0. 2. `TARGETED_DEVICE_FAMILY = 3;` - Targets devices that are iPads, iPhones, and iPod touches. 3. `TVOS_DEPLOYMENT_TARGET = 12.0;` - Sets the deployment target for tvOS to version 12.0. 4. `WATCHOS_DEPLOYMENT_TARGET = 8.0;` - Sets the deployment target for watchOS to version 8.0. 5. `XROS_DEPLOYMENT_TARGET = 1.0;` - Sets the deployment target for xROS (Apple's augmented reality platform) to version 1.0. 6. The rest of the code defines build configurations for your project, including Debug and Release builds for each target (app). By adding these lines, you are enabling your project to be built for multiple platforms, allowing you to create apps for iPhone, iPad, Apple TV, Apple Watch, and possibly augmented reality experiences. Make sure to update your codebase accordingly to take advantage of the new targets. --- Punycode.xcodeproj/project.pbxproj | 592 ++++++++++++++++++++++++++++- 1 file changed, 589 insertions(+), 3 deletions(-) diff --git a/Punycode.xcodeproj/project.pbxproj b/Punycode.xcodeproj/project.pbxproj index cff040d..10c3283 100644 --- a/Punycode.xcodeproj/project.pbxproj +++ b/Punycode.xcodeproj/project.pbxproj @@ -10,6 +10,18 @@ A77CE44C21A29F90009AFD9B /* Punycode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77CE44B21A29F90009AFD9B /* Punycode.swift */; }; A77CE44D21A29F90009AFD9B /* Punycode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77CE44B21A29F90009AFD9B /* Punycode.swift */; }; A77CE44E21A29F90009AFD9B /* Punycode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77CE44B21A29F90009AFD9B /* Punycode.swift */; }; + A79A97282C78CF220079CCA8 /* Punycode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A79A97202C78CF210079CCA8 /* Punycode.framework */; }; + A79A97422C78CF940079CCA8 /* Punycode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A79A973A2C78CF930079CCA8 /* Punycode.framework */; }; + A79A974F2C78D0040079CCA8 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFABE29101B196631B97D29A /* Extensions.swift */; }; + A79A97502C78D0060079CCA8 /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFABED31BB1FF40D654368A4 /* Helpers.swift */; }; + A79A97512C78D0080079CCA8 /* Punycode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77CE44B21A29F90009AFD9B /* Punycode.swift */; }; + A79A97522C78D01B0079CCA8 /* Punycode.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A14326219F00CA003FB96A /* Punycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A79A97532C78D02B0079CCA8 /* Punycode.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A14326219F00CA003FB96A /* Punycode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A79A97542C78D0300079CCA8 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFABE29101B196631B97D29A /* Extensions.swift */; }; + A79A97552C78D0320079CCA8 /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFABED31BB1FF40D654368A4 /* Helpers.swift */; }; + A79A97562C78D0340079CCA8 /* Punycode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77CE44B21A29F90009AFD9B /* Punycode.swift */; }; + A79A97572C78D13A0079CCA8 /* PunycodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A14318219F0075003FB96A /* PunycodeTests.swift */; }; + A79A97582C78D13F0079CCA8 /* PunycodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A14318219F0075003FB96A /* PunycodeTests.swift */; }; A7A0ECE7219EB279004FBE05 /* Punycode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A0ECDD219EB279004FBE05 /* Punycode.framework */; }; A7A0ED3A219EC0FD004FBE05 /* Punycode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A0ED14219EB6C8004FBE05 /* Punycode.framework */; }; A7A0ED65219EC8D1004FBE05 /* Punycode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A0ED42219EC3E3004FBE05 /* Punycode.framework */; }; @@ -28,6 +40,20 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + A79A97292C78CF220079CCA8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A7A0ECD4219EB279004FBE05 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A79A971F2C78CF210079CCA8; + remoteInfo = "Punycode-watchOS"; + }; + A79A97432C78CF940079CCA8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A7A0ECD4219EB279004FBE05 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A79A97392C78CF930079CCA8; + remoteInfo = "Punycode-visionOS"; + }; A7A0ECE8219EB279004FBE05 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = A7A0ECD4219EB279004FBE05 /* Project object */; @@ -53,6 +79,10 @@ /* Begin PBXFileReference section */ A77CE44B21A29F90009AFD9B /* Punycode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Punycode.swift; sourceTree = ""; }; + A79A97202C78CF210079CCA8 /* Punycode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Punycode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A79A97272C78CF220079CCA8 /* Punycode-watchOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Punycode-watchOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A79A973A2C78CF930079CCA8 /* Punycode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Punycode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A79A97412C78CF940079CCA8 /* Punycode-visionOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Punycode-visionOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; A7A0ECDD219EB279004FBE05 /* Punycode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Punycode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A7A0ECE6219EB279004FBE05 /* Punycode-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Punycode-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; A7A0ED14219EB6C8004FBE05 /* Punycode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Punycode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -68,6 +98,36 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + A79A971D2C78CF210079CCA8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97242C78CF220079CCA8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97282C78CF220079CCA8 /* Punycode.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97372C78CF930079CCA8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A973E2C78CF940079CCA8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97422C78CF940079CCA8 /* Punycode.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; A7A0ECDA219EB279004FBE05 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -134,6 +194,10 @@ A7A0ED1C219EB6C9004FBE05 /* Punycode-macOSTests.xctest */, A7A0ED42219EC3E3004FBE05 /* Punycode.framework */, A7A0ED4A219EC3E3004FBE05 /* Punycode-tvOSTests.xctest */, + A79A97202C78CF210079CCA8 /* Punycode.framework */, + A79A97272C78CF220079CCA8 /* Punycode-watchOSTests.xctest */, + A79A973A2C78CF930079CCA8 /* Punycode.framework */, + A79A97412C78CF940079CCA8 /* Punycode-visionOSTests.xctest */, ); name = Products; sourceTree = ""; @@ -162,6 +226,22 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + A79A971B2C78CF210079CCA8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97522C78D01B0079CCA8 /* Punycode.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97352C78CF930079CCA8 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97532C78D02B0079CCA8 /* Punycode.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; A7A0ECD8219EB279004FBE05 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -189,6 +269,78 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + A79A971F2C78CF210079CCA8 /* Punycode-watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A79A972F2C78CF220079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-watchOS" */; + buildPhases = ( + A79A971B2C78CF210079CCA8 /* Headers */, + A79A971C2C78CF210079CCA8 /* Sources */, + A79A971D2C78CF210079CCA8 /* Frameworks */, + A79A971E2C78CF210079CCA8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Punycode-watchOS"; + productName = "Punycode-watchOS"; + productReference = A79A97202C78CF210079CCA8 /* Punycode.framework */; + productType = "com.apple.product-type.framework"; + }; + A79A97262C78CF220079CCA8 /* Punycode-watchOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A79A97322C78CF220079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-watchOSTests" */; + buildPhases = ( + A79A97232C78CF220079CCA8 /* Sources */, + A79A97242C78CF220079CCA8 /* Frameworks */, + A79A97252C78CF220079CCA8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A79A972A2C78CF220079CCA8 /* PBXTargetDependency */, + ); + name = "Punycode-watchOSTests"; + productName = "Punycode-watchOSTests"; + productReference = A79A97272C78CF220079CCA8 /* Punycode-watchOSTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + A79A97392C78CF930079CCA8 /* Punycode-visionOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = A79A97492C78CF940079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-visionOS" */; + buildPhases = ( + A79A97352C78CF930079CCA8 /* Headers */, + A79A97362C78CF930079CCA8 /* Sources */, + A79A97372C78CF930079CCA8 /* Frameworks */, + A79A97382C78CF930079CCA8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Punycode-visionOS"; + productName = "Punycode-visionOS"; + productReference = A79A973A2C78CF930079CCA8 /* Punycode.framework */; + productType = "com.apple.product-type.framework"; + }; + A79A97402C78CF940079CCA8 /* Punycode-visionOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A79A974C2C78CF940079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-visionOSTests" */; + buildPhases = ( + A79A973D2C78CF940079CCA8 /* Sources */, + A79A973E2C78CF940079CCA8 /* Frameworks */, + A79A973F2C78CF940079CCA8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A79A97442C78CF940079CCA8 /* PBXTargetDependency */, + ); + name = "Punycode-visionOSTests"; + productName = "Punycode-visionOSTests"; + productReference = A79A97412C78CF940079CCA8 /* Punycode-visionOSTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; A7A0ECDC219EB279004FBE05 /* Punycode-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = A7A0ECF1219EB279004FBE05 /* Build configuration list for PBXNativeTarget "Punycode-iOS" */; @@ -304,10 +456,22 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastSwiftUpdateCheck = 1010; + LastSwiftUpdateCheck = 1540; LastUpgradeCheck = 1540; ORGANIZATIONNAME = Gumob; TargetAttributes = { + A79A971F2C78CF210079CCA8 = { + CreatedOnToolsVersion = 15.4; + }; + A79A97262C78CF220079CCA8 = { + CreatedOnToolsVersion = 15.4; + }; + A79A97392C78CF930079CCA8 = { + CreatedOnToolsVersion = 15.4; + }; + A79A97402C78CF940079CCA8 = { + CreatedOnToolsVersion = 15.4; + }; A7A0ECDC219EB279004FBE05 = { CreatedOnToolsVersion = 10.1; LastSwiftMigration = 1020; @@ -345,17 +509,49 @@ projectDirPath = ""; projectRoot = ""; targets = ( - A7A0ECDC219EB279004FBE05 /* Punycode-iOS */, - A7A0ECE5219EB279004FBE05 /* Punycode-iOSTests */, A7A0ED13219EB6C8004FBE05 /* Punycode-macOS */, A7A0ED1B219EB6C9004FBE05 /* Punycode-macOSTests */, + A7A0ECDC219EB279004FBE05 /* Punycode-iOS */, + A7A0ECE5219EB279004FBE05 /* Punycode-iOSTests */, A7A0ED41219EC3E3004FBE05 /* Punycode-tvOS */, A7A0ED49219EC3E3004FBE05 /* Punycode-tvOSTests */, + A79A971F2C78CF210079CCA8 /* Punycode-watchOS */, + A79A97262C78CF220079CCA8 /* Punycode-watchOSTests */, + A79A97392C78CF930079CCA8 /* Punycode-visionOS */, + A79A97402C78CF940079CCA8 /* Punycode-visionOSTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + A79A971E2C78CF210079CCA8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97252C78CF220079CCA8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97382C78CF930079CCA8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A973F2C78CF940079CCA8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; A7A0ECDB219EB279004FBE05 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -401,6 +597,42 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + A79A971C2C78CF210079CCA8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A974F2C78D0040079CCA8 /* Extensions.swift in Sources */, + A79A97502C78D0060079CCA8 /* Helpers.swift in Sources */, + A79A97512C78D0080079CCA8 /* Punycode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97232C78CF220079CCA8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97572C78D13A0079CCA8 /* PunycodeTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A97362C78CF930079CCA8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97542C78D0300079CCA8 /* Extensions.swift in Sources */, + A79A97552C78D0320079CCA8 /* Helpers.swift in Sources */, + A79A97562C78D0340079CCA8 /* Punycode.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A79A973D2C78CF940079CCA8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A79A97582C78D13F0079CCA8 /* PunycodeTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; A7A0ECD9219EB279004FBE05 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -458,6 +690,16 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + A79A972A2C78CF220079CCA8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A79A971F2C78CF210079CCA8 /* Punycode-watchOS */; + targetProxy = A79A97292C78CF220079CCA8 /* PBXContainerItemProxy */; + }; + A79A97442C78CF940079CCA8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A79A97392C78CF930079CCA8 /* Punycode-visionOS */; + targetProxy = A79A97432C78CF940079CCA8 /* PBXContainerItemProxy */; + }; A7A0ECE9219EB279004FBE05 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = A7A0ECDC219EB279004FBE05 /* Punycode-iOS */; @@ -476,6 +718,290 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + A79A97302C78CF220079CCA8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; + PRODUCT_BUNDLE_IDENTIFIER = com.gumob.Punycode; + PRODUCT_NAME = "$(PROJECT_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Debug; + }; + A79A97312C78CF220079CCA8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; + PRODUCT_BUNDLE_IDENTIFIER = com.gumob.Punycode; + PRODUCT_NAME = "$(PROJECT_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Release; + }; + A79A97332C78CF220079CCA8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + PRODUCT_BUNDLE_IDENTIFIER = "com.gumob.Punycode-watchOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = watchos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Debug; + }; + A79A97342C78CF220079CCA8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + PRODUCT_BUNDLE_IDENTIFIER = "com.gumob.Punycode-watchOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = watchos; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Release; + }; + A79A974A2C78CF940079CCA8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; + PRODUCT_BUNDLE_IDENTIFIER = com.gumob.Punycode; + PRODUCT_NAME = "$(PROJECT_NAME:c99extidentifier)"; + SDKROOT = xros; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 7; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Debug; + }; + A79A974B2C78CF940079CCA8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; + PRODUCT_BUNDLE_IDENTIFIER = com.gumob.Punycode; + PRODUCT_NAME = "$(PROJECT_NAME:c99extidentifier)"; + SDKROOT = xros; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 7; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Release; + }; + A79A974D2C78CF940079CCA8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + PRODUCT_BUNDLE_IDENTIFIER = "com.gumob.Punycode-visionOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = xros; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,7"; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Debug; + }; + A79A974E2C78CF940079CCA8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + PRODUCT_BUNDLE_IDENTIFIER = "com.gumob.Punycode-visionOSTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = xros; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,7"; + TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; + }; + name = Release; + }; A7A0ECEF219EB279004FBE05 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -635,6 +1161,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -668,6 +1196,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; @@ -695,6 +1225,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -721,6 +1253,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; @@ -757,6 +1291,8 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -792,6 +1328,8 @@ SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; @@ -818,6 +1356,8 @@ SDKROOT = macosx; SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -844,6 +1384,8 @@ SDKROOT = macosx; SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; @@ -878,6 +1420,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -911,6 +1455,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; @@ -936,6 +1482,8 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Debug; }; @@ -960,12 +1508,50 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.0; + WATCHOS_DEPLOYMENT_TARGET = 8.0; + XROS_DEPLOYMENT_TARGET = 1.0; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + A79A972F2C78CF220079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A79A97302C78CF220079CCA8 /* Debug */, + A79A97312C78CF220079CCA8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A79A97322C78CF220079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-watchOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A79A97332C78CF220079CCA8 /* Debug */, + A79A97342C78CF220079CCA8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A79A97492C78CF940079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-visionOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A79A974A2C78CF940079CCA8 /* Debug */, + A79A974B2C78CF940079CCA8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A79A974C2C78CF940079CCA8 /* Build configuration list for PBXNativeTarget "Punycode-visionOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A79A974D2C78CF940079CCA8 /* Debug */, + A79A974E2C78CF940079CCA8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; A7A0ECD7219EB279004FBE05 /* Build configuration list for PBXProject "Punycode" */ = { isa = XCConfigurationList; buildConfigurations = ( From 137c5db60c03aea9e06741ce1c7a882069dd0e52 Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 01:04:44 +0900 Subject: [PATCH 2/7] test: Added support for iOS Watch, tvOS, and visionOS schemes and their corresponding test schemes in .mise.toml --- .mise.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.mise.toml b/.mise.toml index a310707..013f130 100644 --- a/.mise.toml +++ b/.mise.toml @@ -12,6 +12,10 @@ DEFAULT_PODSPEC="Punycode.podspec" SCHEME_IOS="Punycode-iOS" SCHEME_MACOS="Punycode-macOS" SCHEME_TVOS="Punycode-tvOS" +SCHEME_WATCHOS="Punycode-watchOS" +SCHEME_VISIONOS="Punycode-visionOS" SCHEME_IOS_TEST="Punycode-iOSTests" SCHEME_MACOS_TEST="Punycode-macOSTests" -SCHEME_TVOS_TEST="Punycode-tvOSTests" \ No newline at end of file +SCHEME_TVOS_TEST="Punycode-tvOSTests" +SCHEME_WATCHOS_TEST="Punycode-watchOSTests" +SCHEME_VISIONOS_TEST="Punycode-visionOSTests" \ No newline at end of file From 868b7f53eb670d30ba2f38377c002889e694ff30 Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 01:05:57 +0900 Subject: [PATCH 3/7] ci(Fastfile): Add support for watchOS and visionOS schemes in Fastlane configuration Added new environment variables for watchOS and visionOS schemes. Updated run_tests function to include watchOS and visionOS tests with their respective scheme, destination, code coverage, open report, and output files. Added new lanes for running watchOS and visionOS tests in Fastlane configuration. Added Carthage build commands for watchOS and visionOS platforms. --- fastlane/Fastfile | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 57f39d6..c9c1341 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -19,10 +19,14 @@ default_podspec = ENV["DEFAULT_PODSPEC"] scheme_iOS = ENV["SCHEME_IOS"] scheme_macOS = ENV["SCHEME_MACOS"] scheme_tvOS = ENV["SCHEME_TVOS"] +scheme_watchOS = ENV["SCHEME_WATCHOS"] +scheme_visionOS = ENV["SCHEME_VISIONOS"] scheme_iOSTests = ENV["SCHEME_IOS_TEST"] scheme_macOSTests = ENV["SCHEME_MACOS_TEST"] scheme_tvOSTests = ENV["SCHEME_TVOS_TEST"] +scheme_watchOSTests = ENV["SCHEME_WATCHOS_TEST"] +scheme_visionOSTests = ENV["SCHEME_VISIONOS_TEST"] framework_info_plist = "./Source/Info.plist" test_info_plist = "./Tests/Info.plist" @@ -41,10 +45,14 @@ puts "default_podspec: #{default_podspec}" puts "scheme_iOS: #{scheme_iOS}" puts "scheme_macOS: #{scheme_macOS}" puts "scheme_tvOS: #{scheme_tvOS}" +puts "scheme_watchOS: #{scheme_watchOS}" +puts "scheme_visionOS: #{scheme_visionOS}" puts "scheme_iOSTests: #{scheme_iOSTests}" puts "scheme_macOSTests: #{scheme_macOSTests}" puts "scheme_tvOSTests: #{scheme_tvOSTests}" +puts "scheme_watchOSTests: #{scheme_watchOSTests}" +puts "scheme_visionOSTests: #{scheme_visionOSTests}" ########################################## # Versioning @@ -154,6 +162,27 @@ lane :test_all do # html: true, # show: true # ) + + desc "Run watchOS Tests" + run_tests( + scheme: scheme_watchOS, + destination: "platform=watchOS Simulator,name=Apple Watch Series 9 (45mm)", + # clean: true, + code_coverage: true, + open_report: true, + output_files: "report-watchos.html,report-watchos.junit", + ) + + desc "Run visionOS Tests" + run_tests( + scheme: scheme_visionOS, + destination: "platform=visionOS Simulator,name=Apple Vision Pro", + # clean: true, + code_coverage: true, + open_report: true, + output_files: "report-visionos.html,report-visionos.junit", + ) + end ########################################## @@ -191,6 +220,20 @@ lane :build_carthage do |options| use_xcframeworks: true, no_skip_current: true ) + carthage( + command: "build", + verbose: false, + platform: "watchOS", + use_xcframeworks: true, + no_skip_current: true + ) + carthage( + command: "build", + verbose: false, + platform: "visionOS", + use_xcframeworks: true, + no_skip_current: true + ) end desc "Lint Cocoapods" From 969ad049e0a24d104bc9c7e3c5440390689b3d9b Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 11:34:31 +0900 Subject: [PATCH 4/7] build: Added schemes for visionOS and watchOS This is an Xcode scheme configuration for a project named Punycode, specifically for the watchOS target. Here's a brief explanation of each section: 1. `TestAction`: This section defines the test action for the scheme. It uses LLDB as the debugger and launcher, enables code coverage, specifies the build configuration as Debug, and lists the testable reference (Punycode-watchOSTests.xctest). 2. `LaunchAction`: This section defines the launch action for the scheme. It also uses LLDB as the debugger and launcher, sets the build configuration to Debug, and specifies the MacroExpansion which includes the Punycode.framework buildable reference. 3. `ProfileAction`: This section defines the profile action for the scheme. It sets the build configuration to Release, enables code coverage, and also includes the Punycode.framework buildable reference in the MacroExpansion. 4. `AnalyzeAction`: This section defines an analyze action for the scheme, but it doesn't specify a build configuration. 5. `ArchiveAction`: This section defines an archive action for the scheme, sets the build configuration to Release, and enables revealing the archive in the organizer when the action is executed. Each of these actions can be run from the Xcode interface by selecting the scheme and clicking the corresponding button (Test, Run, Profile, Analyze, Archive). The MacroExpansion sections define the buildables that are relevant to each action. --- .../xcschemes/Punycode-visionOSTests.xcscheme | 106 ++++++++++++++++++ .../xcschemes/Punycode-watchOS.xcscheme | 106 ++++++++++++++++++ 2 files changed, 212 insertions(+) create mode 100644 Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOSTests.xcscheme create mode 100644 Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-watchOS.xcscheme diff --git a/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOSTests.xcscheme b/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOSTests.xcscheme new file mode 100644 index 0000000..65f2466 --- /dev/null +++ b/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOSTests.xcscheme @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-watchOS.xcscheme b/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-watchOS.xcscheme new file mode 100644 index 0000000..5217c28 --- /dev/null +++ b/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-watchOS.xcscheme @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 5bf7dd469f5767afabd7e653d19945131aa71608 Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 11:43:41 +0900 Subject: [PATCH 5/7] refactor(Punycode.xcodeproj): Renamed Punycode-visionOS XCScheme for testing, profiling, and archiving This commit adds a new XCScheme file for the Punycode project named "Punycode-visionOS". The scheme supports building for testing, running, profiling, archiving, and analyzing. It also includes code coverage for specified targets and testables for the Punycode-visionOSTests.xctest. This change will facilitate better testing and debugging of the Punycode project in Xcode. --- ...Punycode-visionOSTests.xcscheme => Punycode-visionOS.xcscheme} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Punycode.xcodeproj/xcshareddata/xcschemes/{Punycode-visionOSTests.xcscheme => Punycode-visionOS.xcscheme} (100%) diff --git a/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOSTests.xcscheme b/Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOS.xcscheme similarity index 100% rename from Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOSTests.xcscheme rename to Punycode.xcodeproj/xcshareddata/xcschemes/Punycode-visionOS.xcscheme From 6c2408b166fa3065a101713074356dd25ebe6ae0 Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 12:59:17 +0900 Subject: [PATCH 6/7] docs: Rename Punycode.Punycode class to avoid shadowing module 'Punycode' and potential import failures in certain configurations, see https://github.com/apple/swift/issues/56573 for workarounds. --- Source/Punycode.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Punycode.swift b/Source/Punycode.swift index 0b06bc4..760240f 100755 --- a/Source/Punycode.swift +++ b/Source/Punycode.swift @@ -5,6 +5,8 @@ import Foundation +/// FIXME: public class 'Punycode.Punycode' shadows module 'Punycode', which may cause failures when importing 'Punycode' or its clients in some configurations; please rename either the class 'Punycode.Punycode' or the module 'Punycode', or see https://github.com/apple/swift/issues/56573 for workarounds + public class Punycode { /// Punycode RFC 3492 From e6e54c71c6e457fd8197c46273bc29974d68981a Mon Sep 17 00:00:00 2001 From: gumob Date: Sat, 24 Aug 2024 13:22:56 +0900 Subject: [PATCH 7/7] ci(.github/workflows/main.yml): Add tests for watchOS and visionOS platforms This commit adds two new jobs to the main workflow file for testing the app on the Apple Watch OS and Apple Vision Pro platforms. The changes include adding a new matrix for each platform, updating the steps for each job to use the correct scheme and destination, and updating the needs section to include these new tests in the overall test suite. This will help ensure that our app works correctly on these platforms as well. --- .github/workflows/main.yml | 92 +++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d88e961..81993c7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -170,51 +170,53 @@ jobs: run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-tvOS" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions needs: swiftlint - # test_visionOS: - # name: ${{ matrix.name }} - # runs-on: ${{ matrix.runsOn }} - # env: - # DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" - # timeout-minutes: 10 - # strategy: - # fail-fast: false - # matrix: - # include: - # - destination: "OS=1.2,name=Apple Vision Pro" - # name: "Test: visionOS 1.2" - # testPlan: "visionOS" - # scheme: "Punycode-visionOS" - # xcode: "Xcode_15.4" - # runsOn: macos-14 - # steps: - # - uses: actions/checkout@v4 - # - name: ${{ matrix.name }} - # run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions + test_visionOS: + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + env: + DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer" + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=1.2,name=Apple Vision Pro" + name: "Test: visionOS 1.2" + testPlan: "visionOS" + scheme: "Punycode-visionOS" + xcode: "Xcode_15.4" + runsOn: macos-14 + steps: + - uses: actions/checkout@v4 + - name: ${{ matrix.name }} + run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions + needs: swiftlint - # test_watchOS: - # name: ${{ matrix.name }} - # runs-on: ${{ matrix.runsOn }} - # env: - # DEVELOPER_DIR: /Applications/${{ matrix.xcode }}.app/Contents/Developer - # timeout-minutes: 10 - # strategy: - # fail-fast: false - # matrix: - # include: - # - destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" - # name: "Test: watchOS 10.5" - # testPlan: "watchOS" - # xcode: "Xcode_15.4" - # runsOn: macos-14 - # - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" - # name: "Test: watchOS 9.4" - # testPlan: "watchOS" - # xcode: "Xcode_14.3.1" - # runsOn: macOS-13 - # steps: - # - uses: actions/checkout@v4 - # - name: ${{ matrix.name }} - # run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-watchOS" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions + test_watchOS: + name: ${{ matrix.name }} + runs-on: ${{ matrix.runsOn }} + env: + DEVELOPER_DIR: /Applications/${{ matrix.xcode }}.app/Contents/Developer + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + include: + - destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" + name: "Test: watchOS 10.5" + testPlan: "watchOS" + xcode: "Xcode_15.4" + runsOn: macos-14 + - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" + name: "Test: watchOS 9.4" + testPlan: "watchOS" + xcode: "Xcode_14.3.1" + runsOn: macOS-13 + steps: + - uses: actions/checkout@v4 + - name: ${{ matrix.name }} + run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-watchOS" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions + needs: swiftlint SPM: name: ${{ matrix.name }} @@ -246,7 +248,7 @@ jobs: - uses: actions/checkout@v4 - name: Test SPM run: swift test -c debug 2>&1 | ${{ matrix.outputFilter }} - needs: [test_macOS, test_iOS, test_tvOS] + needs: [test_macOS, test_iOS, test_tvOS, test_watchOS, test_visionOS] # needs: [test_macOS, test_iOS, test_tvOS, test_visionOS, test_watchOS, test_Catalyst] carthage: