diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 969200a..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 @@ -24,7 +25,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/CHANGELOG.md b/CHANGELOG.md index 6af89ca..39e1ff6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,54 +1,3 @@ # Change Log -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](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.1) (2025-07-31) - -### Bug Fixes - -* 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) - -### Bug Fixes - -* nuget readme ([838edc0](https://www.github.com/akinbender/UsbSerialForMacOS/commit/838edc0081322a7d9420cc586af4c8eae9d94798)) - - -## [0.9.0-test-prerelease.1](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.0-test-prerelease.1) (2025-07-31) - -### Bug Fixes - -* push to nuget ([9bb0b01](https://www.github.com/akinbender/UsbSerialForMacOS/commit/9bb0b01d0995f60307212df0a204ee37348c66c9)) - - -## [0.9.0-test-prerelease.0](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.9.0-test-prerelease.0) (2025-07-31) - -### Features - -* nuget ([30663e8](https://www.github.com/akinbender/UsbSerialForMacOS/commit/30663e8e4a393004594a5007265ff252acba9b6b)) - - -## [0.8.1-test-prerelease.1](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.8.1-test-prerelease.1) (2025-07-31) - -### Bug Fixes - -* csproj ([c0150df](https://www.github.com/akinbender/UsbSerialForMacOS/commit/c0150df14d51ab8d5e0ccd3f0d0d39f1be47346d)) - - -## [0.8.1-test-prerelease.0](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.8.1-test-prerelease.0) (2025-07-31) - -### Bug Fixes - -* minor fixes ([f27e578](https://www.github.com/akinbender/UsbSerialForMacOS/commit/f27e5781882b7f7135a1419ed439131205ff6aef)) -* versionize ([d913255](https://www.github.com/akinbender/UsbSerialForMacOS/commit/d91325527ea9e6ac63f18ee1a362b0e665951224)) - - -## [0.8.0](https://www.github.com/akinbender/UsbSerialForMacOS/releases/tag/v0.8.0) (2025-07-28) - -### Bug Fixes - -* Update project file and build scripts for mac ([d3fc1f2](https://www.github.com/akinbender/UsbSerialForMacOS/commit/d3fc1f2b84a2f68482b5ee7c1323d149f5f7fb35)) - +All notable changes to this project will be documented in this file. See [versionize](https://github.com/versionize/versionize) for commit guidelines. \ No newline at end of file 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 c149f61..ae81db7 100644 Binary files a/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.xcworkspace/xcuserdata/akinbender.xcuserdatad/UserInterfaceState.xcuserstate and b/UsbSerialForMacOS/Native/UsbSerialForMacOS.xcodeproj/project.xcworkspace/xcuserdata/akinbender.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/UsbSerialForMacOS/Native/build-dylib-x64.sh b/UsbSerialForMacOS/Native/build-dylib-x64.sh new file mode 100755 index 0000000..f63906a --- /dev/null +++ b/UsbSerialForMacOS/Native/build-dylib-x64.sh @@ -0,0 +1,43 @@ +#!/bin/zsh + +set -e + +# Clean previous builds +envdir=build/dylib +rm -rf build +rm -rf UsbSerialForMacOS.framework +rm -rf UsbSerialForMacOS.xcframework + +# 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 + +# 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 .dylib +xcodebuild -create-xcframework \ + -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 new file mode 100755 index 0000000..2fb6282 --- /dev/null +++ b/UsbSerialForMacOS/Native/build-dylib.sh @@ -0,0 +1,89 @@ +#!/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 + +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 \ + -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/libUsbSerialForMacOS.dylib \ + $envdir/maccatalyst/x86_64/libUsbSerialForMacOS.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/UsbSerialForMacOS.dylib (macOS)" +echo " $envdir/maccatalyst/UsbSerialForMacOS.dylib (Mac Catalyst)" diff --git a/UsbSerialForMacOS/UsbSerialForMacOS.csproj b/UsbSerialForMacOS/UsbSerialForMacOS.csproj index 109d16f..e9c988e 100644 --- a/UsbSerialForMacOS/UsbSerialForMacOS.csproj +++ b/UsbSerialForMacOS/UsbSerialForMacOS.csproj @@ -45,8 +45,9 @@ - - - + + + +