From f18d90436e5abb7e98b04e65a830f6b45ce9ceb2 Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 15:23:04 +0200 Subject: [PATCH 01/14] fix: conversion to dylib for nuget package error --- .github/workflows/build.yml | 2 +- .github/workflows/publish-nuget.yaml | 2 +- .../project.pbxproj | 136 +++++------------- .../UserInterfaceState.xcuserstate | Bin 19559 -> 26454 bytes UsbSerialForMacOS/Native/build-dylib-x64.sh | 42 ++++++ UsbSerialForMacOS/Native/build-dylib.sh | 84 +++++++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 7 +- 7 files changed, 166 insertions(+), 107 deletions(-) create mode 100755 UsbSerialForMacOS/Native/build-dylib-x64.sh create mode 100755 UsbSerialForMacOS/Native/build-dylib.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 969200a..ea7cc9a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: - name: Build native XCFramework run: | cd UsbSerialForMacOS/Native - ./build-native.sh + ./build-dylib.sh - name: Install .NET workloads run: | diff --git a/.github/workflows/publish-nuget.yaml b/.github/workflows/publish-nuget.yaml index 827976e..ee5ac51 100644 --- a/.github/workflows/publish-nuget.yaml +++ b/.github/workflows/publish-nuget.yaml @@ -29,7 +29,7 @@ jobs: - name: Build native XCFramework run: | cd UsbSerialForMacOS/Native - ./build-native.sh + ./build-dylib.sh - name: Install .NET workloads run: | diff --git a/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.pbxproj b/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.pbxproj index f00968d..7b4503d 100644 --- a/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.pbxproj +++ b/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.pbxproj @@ -7,32 +7,19 @@ objects = { /* Begin PBXFileReference section */ - 8282F9592E36B9C900AE2839 /* UsbSerialForMacOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UsbSerialForMacOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 825383582E3E340B00F62FAA /* libUsbSerialForMacOS.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libUsbSerialForMacOS.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 8282F95E2E36B9C900AE2839 /* Exceptions for "UsbSerialForMacOS" folder in "UsbSerialForMacOS" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - publicHeaders = ( - UsbSerialForMacOS.h, - ); - target = 8282F9582E36B9C900AE2839 /* UsbSerialForMacOS */; - }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ - /* Begin PBXFileSystemSynchronizedRootGroup section */ - 8282F95B2E36B9C900AE2839 /* UsbSerialForMacOS */ = { + 8253835E2E3E342C00F62FAA /* UsbSerialForMacOS */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 8282F95E2E36B9C900AE2839 /* Exceptions for "UsbSerialForMacOS" folder in "UsbSerialForMacOS" target */, - ); path = UsbSerialForMacOS; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ - 8282F9562E36B9C900AE2839 /* Frameworks */ = { + 825383562E3E340B00F62FAA /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -45,23 +32,15 @@ 8282F94F2E36B9C900AE2839 = { isa = PBXGroup; children = ( - 8282F95B2E36B9C900AE2839 /* UsbSerialForMacOS */, - 8282F95A2E36B9C900AE2839 /* Products */, + 825383582E3E340B00F62FAA /* libUsbSerialForMacOS.dylib */, + 8253835E2E3E342C00F62FAA /* UsbSerialForMacOS */, ); sourceTree = ""; }; - 8282F95A2E36B9C900AE2839 /* Products */ = { - isa = PBXGroup; - children = ( - 8282F9592E36B9C900AE2839 /* UsbSerialForMacOS.framework */, - ); - name = Products; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 8282F9542E36B9C900AE2839 /* Headers */ = { + 825383542E3E340B00F62FAA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( @@ -71,28 +50,27 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 8282F9582E36B9C900AE2839 /* UsbSerialForMacOS */ = { + 825383572E3E340B00F62FAA /* UsbSerialForMacOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 8282F95F2E36B9C900AE2839 /* Build configuration list for PBXNativeTarget "UsbSerialForMacOS" */; + buildConfigurationList = 825383592E3E340B00F62FAA /* Build configuration list for PBXNativeTarget "UsbSerialForMacOS" */; buildPhases = ( - 8282F9542E36B9C900AE2839 /* Headers */, - 8282F9552E36B9C900AE2839 /* Sources */, - 8282F9562E36B9C900AE2839 /* Frameworks */, - 8282F9572E36B9C900AE2839 /* Resources */, + 825383542E3E340B00F62FAA /* Headers */, + 825383552E3E340B00F62FAA /* Sources */, + 825383562E3E340B00F62FAA /* Frameworks */, ); buildRules = ( ); dependencies = ( ); fileSystemSynchronizedGroups = ( - 8282F95B2E36B9C900AE2839 /* UsbSerialForMacOS */, + 8253835E2E3E342C00F62FAA /* UsbSerialForMacOS */, ); name = UsbSerialForMacOS; packageProductDependencies = ( ); productName = UsbSerialForMacOS; - productReference = 8282F9592E36B9C900AE2839 /* UsbSerialForMacOS.framework */; - productType = "com.apple.product-type.framework"; + productReference = 825383582E3E340B00F62FAA /* libUsbSerialForMacOS.dylib */; + productType = "com.apple.product-type.library.dynamic"; }; /* End PBXNativeTarget section */ @@ -103,9 +81,8 @@ BuildIndependentTargetsInParallel = 1; LastUpgradeCheck = 1640; TargetAttributes = { - 8282F9582E36B9C900AE2839 = { + 825383572E3E340B00F62FAA = { CreatedOnToolsVersion = 16.4; - LastSwiftMigration = 1640; }; }; }; @@ -119,27 +96,17 @@ mainGroup = 8282F94F2E36B9C900AE2839; minimizedProjectReferenceProxies = 1; preferredProjectObjectVersion = 77; - productRefGroup = 8282F95A2E36B9C900AE2839 /* Products */; + productRefGroup = 8282F94F2E36B9C900AE2839; projectDirPath = ""; projectRoot = ""; targets = ( - 8282F9582E36B9C900AE2839 /* UsbSerialForMacOS */, + 825383572E3E340B00F62FAA /* UsbSerialForMacOS */, ); }; /* End PBXProject section */ -/* Begin PBXResourcesBuildPhase section */ - 8282F9572E36B9C900AE2839 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ - 8282F9552E36B9C900AE2839 /* Sources */ = { + 825383552E3E340B00F62FAA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -149,71 +116,32 @@ /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - 8282F9602E36B9C900AE2839 /* Debug */ = { + 8253835A2E3E340B00F62FAA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = akinbender.UsbSerialForMacOS; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + EXECUTABLE_PREFIX = lib; + PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; SUPPORTS_MACCATALYST = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 2; }; name = Debug; }; - 8282F9612E36B9C900AE2839 /* Release */ = { + 8253835B2E3E340B00F62FAA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - PRODUCT_BUNDLE_IDENTIFIER = akinbender.UsbSerialForMacOS; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + EXECUTABLE_PREFIX = lib; + PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; SUPPORTS_MACCATALYST = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 6.0; TARGETED_DEVICE_FAMILY = 2; }; name = Release; @@ -251,6 +179,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; @@ -277,6 +206,7 @@ MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -315,6 +245,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -334,6 +265,7 @@ MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -342,20 +274,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 8282F9532E36B9C900AE2839 /* Build configuration list for PBXProject "UsbSerialForMacOS" */ = { + 825383592E3E340B00F62FAA /* Build configuration list for PBXNativeTarget "UsbSerialForMacOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8282F9622E36B9C900AE2839 /* Debug */, - 8282F9632E36B9C900AE2839 /* Release */, + 8253835A2E3E340B00F62FAA /* Debug */, + 8253835B2E3E340B00F62FAA /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8282F95F2E36B9C900AE2839 /* Build configuration list for PBXNativeTarget "UsbSerialForMacOS" */ = { + 8282F9532E36B9C900AE2839 /* Build configuration list for PBXProject "UsbSerialForMacOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8282F9602E36B9C900AE2839 /* Debug */, - 8282F9612E36B9C900AE2839 /* Release */, + 8282F9622E36B9C900AE2839 /* Debug */, + 8282F9632E36B9C900AE2839 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.xcworkspace/xcuserdata/akinbender.xcuserdatad/UserInterfaceState.xcuserstate b/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.xcworkspace/xcuserdata/akinbender.xcuserdatad/UserInterfaceState.xcuserstate index c149f6199caa917364d969cf810975250145bd4b..d6e3286b2f1c1f8e36611f6f4ada31674b416ca8 100644 GIT binary patch delta 13123 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 delta 8702 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 diff --git a/UsbSerialForMacOS/Native/build-dylib-x64.sh b/UsbSerialForMacOS/Native/build-dylib-x64.sh new file mode 100755 index 0000000..8974c4b --- /dev/null +++ b/UsbSerialForMacOS/Native/build-dylib-x64.sh @@ -0,0 +1,42 @@ +#!/bin/zsh + +set -e + +# Clean previous builds +envdir=build/dylib +rm -rf $envdir +mkdir -p $envdir/arm64 $envdir/x86_64 $envdir/universal + +# Build for Mac Catalyst x86_64 as .dylib +xcodebuild -scheme UsbSerialForMacOS \ + -sdk macosx \ + -configuration Release \ + -destination 'platform=macOS,variant=Mac Catalyst,arch=x86_64' \ + MACH_O_TYPE=mh_dylib \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + clean build \ + CONFIGURATION_BUILD_DIR=$envdir/x86_64/maccatalyst + +# Build for macOS x86_64 as .dylib +xcodebuild -scheme UsbSerialForMacOS \ + -sdk macosx \ + -configuration Release \ + -arch x86_64 \ + MACH_O_TYPE=mh_dylib \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + clean build \ + CONFIGURATION_BUILD_DIR=$envdir/x86_64/macos + +# Combine into universal .dylib +xcodebuild -create-xcframework \ + -library $envdir/x86_64/macos/libUsbSerialForMacOS.dylib \ + -library $envdir/x86_64/maccatalyst/libUsbSerialForMacOS.dylib \ + -output UsbSerialForMacOS.xcframework + +echo "Universal .dylib created at UsbSerialForMacOS.dylib" diff --git a/UsbSerialForMacOS/Native/build-dylib.sh b/UsbSerialForMacOS/Native/build-dylib.sh new file mode 100755 index 0000000..6f82f06 --- /dev/null +++ b/UsbSerialForMacOS/Native/build-dylib.sh @@ -0,0 +1,84 @@ +#!/bin/zsh + +set -e + +# Clean previous builds +envdir=build/dylib +rm -rf build +rm -rf UsbSerialForMacOS.framework +rm -rf UsbSerialForMacOS.xcframework +mkdir -p $envdir/macos/arm64 $envdir/macos/x86_64 $envdir/macos/universal +mkdir -p $envdir/maccatalyst/arm64 $envdir/maccatalyst/x86_64 $envdir/maccatalyst/universal + +# Build for macOS arm64 as .dylib +xcodebuild -scheme UsbSerialForMacOS \ + -sdk macosx \ + -configuration Release \ + -arch arm64 \ + MACH_O_TYPE=mh_dylib \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + clean build \ + CONFIGURATION_BUILD_DIR=$envdir/macos/arm64 + +# Build for macOS x86_64 as .dylib +xcodebuild -scheme UsbSerialForMacOS \ + -sdk macosx \ + -configuration Release \ + -arch x86_64 \ + MACH_O_TYPE=mh_dylib \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + clean build \ + CONFIGURATION_BUILD_DIR=$envdir/macos/x86_64 + +# Combine into universal macOS .dylib +lipo -create \ + $envdir/macos/arm64/libUsbSerialForMacOS.dylib \ + $envdir/macos/x86_64/libUsbSerialForMacOS.dylib \ + -output $envdir/macos/UsbSerialForMacOS.dylib + +# Build for Mac Catalyst arm64 as .dylib +xcodebuild -scheme UsbSerialForMacOS \ + -sdk macosx \ + -configuration Release \ + -destination 'platform=macOS,variant=Mac Catalyst,arch=arm64' \ + MACH_O_TYPE=mh_dylib \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + clean build \ + CONFIGURATION_BUILD_DIR=$envdir/maccatalyst/arm64 + +# Build for Mac Catalyst x86_64 as .dylib +xcodebuild -scheme UsbSerialForMacOS \ + -sdk macosx \ + -configuration Release \ + -destination 'platform=macOS,variant=Mac Catalyst,arch=x86_64' \ + MACH_O_TYPE=mh_dylib \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + clean build \ + CONFIGURATION_BUILD_DIR=$envdir/maccatalyst/x86_64 + +# Combine into universal Mac Catalyst .dylib +lipo -create \ + $envdir/maccatalyst/arm64/UsbSerialForMacOS.dylib \ + $envdir/maccatalyst/x86_64/UsbSerialForMacOS.dylib \ + -output $envdir/maccatalyst/UsbSerialForMacOS.dylib + +xcodebuild -create-xcframework \ + -library build/dylib/macos/UsbSerialForMacOS.dylib \ + -library build/dylib/maccatalyst/UsbSerialForMacOS.dylib \ + -output UsbSerialForMacOS.xcframework + +echo "Universal .dylib created at:" +echo " $envdir/macos/universal/UsbSerialForMacOS.dylib (macOS)" +echo " $envdir/maccatalyst/universal/UsbSerialForMacOS.dylib (Mac Catalyst)" diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index e15457a..536e98a 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -45,8 +45,9 @@ - - - + + + + From 9e2ba1b47fd25fa3f65007a6873d61f04387c858 Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 15:24:59 +0200 Subject: [PATCH 02/14] fix: build pipeline --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ea7cc9a..8fb4ea6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,8 @@ on: branches: [main] pull_request: branches: [main] - + workflow_dispatch: + jobs: build: runs-on: macos-15 From 8e16939e62b89fbafaaa31d75f5aa07877c0079a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 Aug 2025 13:26:03 +0000 Subject: [PATCH 03/14] chore(release): 0.9.1-test-prerelease.0 --- CHANGELOG.md | 9 +++++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74e9da5..380e80b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. + +## [0.9.1-test-prerelease.0](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.0) (2025-08-02) + +### Bug Fixes + +* build pipeline ([9e2ba1b](https://www.github.com/akinbender/UsbSerialForMacOS/commit/9e2ba1b47fd25fa3f65007a6873d61f04387c858)) +* conversion to dylib for nuget package error ([f18d904](https://www.github.com/akinbender/UsbSerialForMacOS/commit/f18d90436e5abb7e98b04e65a830f6b45ce9ceb2)) +* nuget package ([dab3073](https://www.github.com/akinbender/UsbSerialForMacOS/commit/dab30731a8e848b078ba729694ef0ff9fe455186)) + ## [0.9.0](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.0) (2025-07-31) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index 536e98a..484d75a 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.0 + 0.9.1-test-prerelease.0 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst. From 8ea281bc166dc85bffe8cbee60a992adce2e1e98 Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 18:44:58 +0200 Subject: [PATCH 04/14] fix: code sign bs --- UsbSerialForMacOS/Native/build-dylib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/UsbSerialForMacOS/Native/build-dylib.sh b/UsbSerialForMacOS/Native/build-dylib.sh index 6f82f06..93096de 100755 --- a/UsbSerialForMacOS/Native/build-dylib.sh +++ b/UsbSerialForMacOS/Native/build-dylib.sh @@ -79,6 +79,8 @@ xcodebuild -create-xcframework \ -library build/dylib/maccatalyst/UsbSerialForMacOS.dylib \ -output UsbSerialForMacOS.xcframework +codesign --force --sign - --deep UsbSerialForMacOS.xcframework + echo "Universal .dylib created at:" echo " $envdir/macos/universal/UsbSerialForMacOS.dylib (macOS)" echo " $envdir/maccatalyst/universal/UsbSerialForMacOS.dylib (Mac Catalyst)" From 87956aaf13a634cd87749f712cc2603e01461206 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 Aug 2025 16:48:46 +0000 Subject: [PATCH 05/14] chore(release): 0.9.1-test-prerelease.1 --- CHANGELOG.md | 7 +++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 380e80b..f5451a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. + +## [0.9.1-test-prerelease.1](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.1) (2025-08-02) + +### Bug Fixes + +* code sign bs ([8ea281b](https://www.github.com/akinbender/UsbSerialForMacOS/commit/8ea281bc166dc85bffe8cbee60a992adce2e1e98)) + ## [0.9.1-test-prerelease.0](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.0) (2025-08-02) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index 484d75a..c495532 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.1-test-prerelease.0 + 0.9.1-test-prerelease.1 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst. From 1b27e4d1c5911a3f2db51386d8394e0822cefeb5 Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 19:16:06 +0200 Subject: [PATCH 06/14] fix: test --- .../UserInterfaceState.xcuserstate | Bin 26454 -> 36574 bytes UsbSerialForMacOS/Native/build-dylib-x64.sh | 5 ++++- UsbSerialForMacOS/Native/build-dylib.sh | 2 -- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.xcworkspace/xcuserdata/akinbender.xcuserdatad/UserInterfaceState.xcuserstate b/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.xcworkspace/xcuserdata/akinbender.xcuserdatad/UserInterfaceState.xcuserstate index d6e3286b2f1c1f8e36611f6f4ada31674b416ca8..ae81db71ea4cb8decbadacb6e0b150176593e7d2 100644 GIT binary patch literal 36574 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 b=@!*4n!U*648UReuUn)u^5*=r$npOH3t`3Q delta 8685 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 Date: Sat, 2 Aug 2025 17:17:41 +0000 Subject: [PATCH 07/14] chore(release): 0.9.1-test-prerelease.2 --- CHANGELOG.md | 7 +++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5451a6..8dc0d21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. + +## [0.9.1-test-prerelease.2](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.2) (2025-08-02) + +### Bug Fixes + +* test ([1b27e4d](https://www.github.com/akinbender/UsbSerialForMacOS/commit/1b27e4d1c5911a3f2db51386d8394e0822cefeb5)) + ## [0.9.1-test-prerelease.1](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.1) (2025-08-02) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index c495532..49584be 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.1-test-prerelease.1 + 0.9.1-test-prerelease.2 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst. From dc1518efa2f0b2e6782fb7f62c0fceba8581ed10 Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 19:26:39 +0200 Subject: [PATCH 08/14] fix: test --- UsbSerialForMacOS/Native/build-dylib.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/UsbSerialForMacOS/Native/build-dylib.sh b/UsbSerialForMacOS/Native/build-dylib.sh index 6f82f06..091c92c 100755 --- a/UsbSerialForMacOS/Native/build-dylib.sh +++ b/UsbSerialForMacOS/Native/build-dylib.sh @@ -10,6 +10,11 @@ rm -rf UsbSerialForMacOS.xcframework mkdir -p $envdir/macos/arm64 $envdir/macos/x86_64 $envdir/macos/universal mkdir -p $envdir/maccatalyst/arm64 $envdir/maccatalyst/x86_64 $envdir/maccatalyst/universal +xattr -w com.apple.xcode.CreatedByBuildSystem true build/dylib/macos/arm64 || true +xattr -w com.apple.xcode.CreatedByBuildSystem true build/dylib/macos/x86_64 || true +xattr -w com.apple.xcode.CreatedByBuildSystem true build/dylib/maccatalyst/arm64 || true +xattr -w com.apple.xcode.CreatedByBuildSystem true build/dylib/maccatalyst/x86_64 || true + # Build for macOS arm64 as .dylib xcodebuild -scheme UsbSerialForMacOS \ -sdk macosx \ From ae98261514d27d686ee52d53620332d1bbee8e7c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 Aug 2025 17:29:21 +0000 Subject: [PATCH 09/14] chore(release): 0.9.1-test-prerelease.3 --- CHANGELOG.md | 7 +++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dc0d21..f147ad9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. + +## [0.9.1-test-prerelease.3](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.3) (2025-08-02) + +### Bug Fixes + +* test ([dc1518e](https://www.github.com/akinbender/UsbSerialForMacOS/commit/dc1518efa2f0b2e6782fb7f62c0fceba8581ed10)) + ## [0.9.1-test-prerelease.2](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.2) (2025-08-02) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index 49584be..71a9c40 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.1-test-prerelease.2 + 0.9.1-test-prerelease.3 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst. From 2f46530a48c3b886f6a69f4eca7f40a3d7b5221a Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 19:35:25 +0200 Subject: [PATCH 10/14] fix: build dylib --- UsbSerialForMacOS/Native/build-dylib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UsbSerialForMacOS/Native/build-dylib.sh b/UsbSerialForMacOS/Native/build-dylib.sh index 091c92c..43c2efa 100755 --- a/UsbSerialForMacOS/Native/build-dylib.sh +++ b/UsbSerialForMacOS/Native/build-dylib.sh @@ -75,8 +75,8 @@ xcodebuild -scheme UsbSerialForMacOS \ # Combine into universal Mac Catalyst .dylib lipo -create \ - $envdir/maccatalyst/arm64/UsbSerialForMacOS.dylib \ - $envdir/maccatalyst/x86_64/UsbSerialForMacOS.dylib \ + $envdir/maccatalyst/arm64/libUsbSerialForMacOS.dylib \ + $envdir/maccatalyst/x86_64/libUsbSerialForMacOS.dylib \ -output $envdir/maccatalyst/UsbSerialForMacOS.dylib xcodebuild -create-xcframework \ From 7708e82fb34ce48135fd918db41199e164b53b32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 Aug 2025 17:37:29 +0000 Subject: [PATCH 11/14] chore(release): 0.9.1-test-prerelease.4 --- CHANGELOG.md | 7 +++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f147ad9..5a8ed54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. + +## [0.9.1-test-prerelease.4](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.4) (2025-08-02) + +### Bug Fixes + +* build dylib ([2f46530](https://www.github.com/akinbender/UsbSerialForMacOS/commit/2f46530a48c3b886f6a69f4eca7f40a3d7b5221a)) + ## [0.9.1-test-prerelease.3](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.3) (2025-08-02) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index 71a9c40..ce5a42e 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.1-test-prerelease.3 + 0.9.1-test-prerelease.4 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst. From 95912a07f119828b01a627683a7d7bfe987beae4 Mon Sep 17 00:00:00 2001 From: akinbender Date: Sat, 2 Aug 2025 19:52:07 +0200 Subject: [PATCH 12/14] fix: build dylib --- UsbSerialForMacOS/Native/build-dylib-x64.sh | 10 ++++------ UsbSerialForMacOS/Native/build-dylib.sh | 4 ++-- UsbSerialForMacOS/UsbSerialForMacOS.csproj | 4 ++-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/UsbSerialForMacOS/Native/build-dylib-x64.sh b/UsbSerialForMacOS/Native/build-dylib-x64.sh index aa21f10..f63906a 100755 --- a/UsbSerialForMacOS/Native/build-dylib-x64.sh +++ b/UsbSerialForMacOS/Native/build-dylib-x64.sh @@ -8,8 +8,6 @@ rm -rf build rm -rf UsbSerialForMacOS.framework rm -rf UsbSerialForMacOS.xcframework -mkdir -p $envdir/arm64 $envdir/x86_64 $envdir/universal - # Build for Mac Catalyst x86_64 as .dylib xcodebuild -scheme UsbSerialForMacOS \ -sdk macosx \ @@ -21,7 +19,7 @@ xcodebuild -scheme UsbSerialForMacOS \ CODE_SIGNING_ALLOWED=NO \ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ clean build \ - CONFIGURATION_BUILD_DIR=$envdir/x86_64/maccatalyst + CONFIGURATION_BUILD_DIR=$envdir/maccatalyst/x86_64 # Build for macOS x86_64 as .dylib xcodebuild -scheme UsbSerialForMacOS \ @@ -34,12 +32,12 @@ xcodebuild -scheme UsbSerialForMacOS \ CODE_SIGNING_ALLOWED=NO \ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ clean build \ - CONFIGURATION_BUILD_DIR=$envdir/x86_64/macos + CONFIGURATION_BUILD_DIR=$envdir/macos/x86_64 # Combine into universal .dylib xcodebuild -create-xcframework \ - -library $envdir/x86_64/macos/libUsbSerialForMacOS.dylib \ - -library $envdir/x86_64/maccatalyst/libUsbSerialForMacOS.dylib \ + -library $envdir/macos/x86_64/libUsbSerialForMacOS.dylib \ + -library $envdir/maccatalyst/x86_64/libUsbSerialForMacOS.dylib \ -output UsbSerialForMacOS.xcframework echo "Universal .dylib created at UsbSerialForMacOS.dylib" diff --git a/UsbSerialForMacOS/Native/build-dylib.sh b/UsbSerialForMacOS/Native/build-dylib.sh index 43c2efa..2fb6282 100755 --- a/UsbSerialForMacOS/Native/build-dylib.sh +++ b/UsbSerialForMacOS/Native/build-dylib.sh @@ -85,5 +85,5 @@ xcodebuild -create-xcframework \ -output UsbSerialForMacOS.xcframework echo "Universal .dylib created at:" -echo " $envdir/macos/universal/UsbSerialForMacOS.dylib (macOS)" -echo " $envdir/maccatalyst/universal/UsbSerialForMacOS.dylib (Mac Catalyst)" +echo " $envdir/macos/UsbSerialForMacOS.dylib (macOS)" +echo " $envdir/maccatalyst/UsbSerialForMacOS.dylib (Mac Catalyst)" diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index ce5a42e..82354f7 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -46,8 +46,8 @@ - - + + From 087eba77ebb19ff314c91f8d937c636f319e3afe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 Aug 2025 17:55:43 +0000 Subject: [PATCH 13/14] chore(release): 0.9.1-test-prerelease.5 --- CHANGELOG.md | 7 +++++++ UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a8ed54..b0e448a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. + +## [0.9.1-test-prerelease.5](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.5) (2025-08-02) + +### Bug Fixes + +* build dylib ([95912a0](https://www.github.com/akinbender/UsbSerialForMacOS/commit/95912a07f119828b01a627683a7d7bfe987beae4)) + ## [0.9.1-test-prerelease.4](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1-test-prerelease.4) (2025-08-02) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index 82354f7..b8b094c 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.1-test-prerelease.4 + 0.9.1-test-prerelease.5 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst. From 3ac573dbda967f470a90f11cdde03076c63c07ba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 23:42:00 +0000 Subject: [PATCH 14/14] chore(release): 0.9.1 --- UsbSerialForMacOS/UsbSerialForMacOS.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index b8b094c..e9c988e 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -6,7 +6,7 @@ enable enable true - 0.9.1-test-prerelease.5 + 0.9.1 Akın Bender UsbSerialForMacOS .NET binding for native Swift serial port library for macOS and Mac Catalyst.