diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
index ed8a8f87..03953723 100644
--- a/.github/workflows/github-actions.yml
+++ b/.github/workflows/github-actions.yml
@@ -14,6 +14,11 @@ env:
SCL_AZURE_ARTIFACTS_API_KEY: ${{ secrets.SCL_AZURE_ARTIFACTS_API_KEY }}
SCL_GITHUB_NUGET_FEED_USERNAME: ${{ secrets.SCL_GITHUB_NUGET_FEED_USERNAME }}
+ BINDINGS_IOS___SDK_VERSION: "17.5"
+ BINDINGS_IOS___XCODE_IDE_DEV_PATH: "/Applications/Xcode_15.4.app/Contents/Developer"
+
+ BINDINGS_MACCATALYST___SDK_VERSION: "14.5"
+ BINDINGS_MACCATALYST___XCODE_IDE_DEV_PATH: "/Applications/Xcode_15.4.app/Contents/Developer"
on:
workflow_call: # so that other workflows can trigger this
@@ -57,20 +62,26 @@ jobs:
- name: '🏗 📦 Build, Pack & Announce New Release (if appropriate)'
shell: 'bash'
run: |
- cd "${{env.BUILD_REPOSITORY_FOLDERPATH}}/Laerdal.Scripts" \
- && \
- dotnet \
- msbuild \
- "Laerdal.Builder.targets" \
- -m:1 \
- -p:Should_Skip_MacCatalyst="false" \
- \
- -p:PackageOutputPath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/Artifacts" \
- -p:Laerdal_Gradle_Path="/opt/homebrew/opt/gradle@7/bin/gradle" \
- -p:Laerdal_Source_Branch="${{env.LAERDAL_SOURCE_BRANCH}}" \
- -p:Laerdal_Repository_Path="${{env.LAERDAL_REPOSITORY_PATH}}" \
- -p:Laerdal_Github_Access_Token="${{env.SCL_GITHUB_ACCESS_TOKEN}}" \
- -p:Laerdal_Test_Results_Folderpath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/TestResults"
+ cd "${{env.BUILD_REPOSITORY_FOLDERPATH}}/Laerdal.Scripts" \
+ && \
+ dotnet \
+ msbuild \
+ "Laerdal.Builder.targets" \
+ -m:1 \
+ -p:Should_Skip_MacCatalyst="false" \
+ \
+ -p:PackageOutputPath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/Artifacts" \
+ -p:Laerdal_Gradle_Path="/opt/homebrew/opt/gradle@7/bin/gradle" \
+ -p:Laerdal_Source_Branch="${{env.LAERDAL_SOURCE_BRANCH}}" \
+ -p:Laerdal_Repository_Path="${{env.LAERDAL_REPOSITORY_PATH}}" \
+ -p:Laerdal_Github_Access_Token="${{env.SCL_GITHUB_ACCESS_TOKEN}}" \
+ -p:Laerdal_Test_Results_Folderpath="${{env.BUILD_REPOSITORY_FOLDERPATH}}/TestResults" \
+ \
+ -p:Laerdal_Bindings_iOS___Sdk_Version="${{env.BINDINGS_IOS___SDK_VERSION}}" \
+ -p:Laerdal_Bindings_iOS___Xcode_Ide_Dev_Path="${{env.BINDINGS_IOS___XCODE_IDE_DEV_PATH}}" \
+ \
+ -p:Laerdal_Bindings_MacCatalyst___Sdk_Version="${{env.BINDINGS_MACCATALYST___SDK_VERSION}}" \
+ -p:Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path="${{env.BINDINGS_MACCATALYST___XCODE_IDE_DEV_PATH}}"
- name: '📡 Publish Test Results' # https://github.com/marketplace/actions/publish-test-results
uses: 'EnricoMi/publish-unit-test-result-action/macos@v2'
diff --git a/Laerdal.McuMgr.Bindings.Android/Laerdal.McuMgr.Bindings.Android.csproj b/Laerdal.McuMgr.Bindings.Android/Laerdal.McuMgr.Bindings.Android.csproj
index 6d183065..25e7e29c 100644
--- a/Laerdal.McuMgr.Bindings.Android/Laerdal.McuMgr.Bindings.Android.csproj
+++ b/Laerdal.McuMgr.Bindings.Android/Laerdal.McuMgr.Bindings.Android.csproj
@@ -55,10 +55,10 @@
true
- 1.0.1071.0
- 1.0.1071.0
- 1.0.1071.0
- 1.0.1071.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
$(PackageId)
$(Authors)
diff --git a/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj b/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj
index daeb7303..080faeff 100644
--- a/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj
+++ b/Laerdal.McuMgr.Bindings.MacCatalyst/Laerdal.McuMgr.Bindings.MacCatalyst.csproj
@@ -33,6 +33,10 @@
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'Frameworks'))
$(NativeFrameworkParentFolderpath)/McuMgrBindingsiOS.framework
+
+
+
+
@@ -65,10 +69,10 @@
$(AllowedReferenceRelatedFileExtensions);.pdb
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
$(PackageId)
McuMgr Bindings for MacCatalyst - MAUI ready
@@ -158,7 +162,16 @@
-
+
+
+ <_CliCommand>$(_CliCommand) SWIFT_OUTPUT_PATH='$(NativeFrameworkParentFolderpath)'
+ <_CliCommand>$(_CliCommand) XCODE_IDE_DEV_PATH='$(Laerdal_Bindings_MacCatalyst___Xcode_Ide_Dev_Path)'
+ <_CliCommand>$(_CliCommand) XCODEBUILD_TARGET_SDK='macosx'
+ <_CliCommand>$(_CliCommand) XCODEBUILD_TARGET_SDK_VERSION='$(Laerdal_Bindings_MacCatalyst___Sdk_Version)'
+ <_CliCommand>$(_CliCommand) ./Laerdal.Mac.CompileAndGenerateFatLibs.sh
+
+
+
diff --git a/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh b/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh
index 2e7c9e2b..4bd77773 100755
--- a/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh
+++ b/Laerdal.McuMgr.Bindings.MacCatalystAndIos.Native/Laerdal.Mac.CompileAndGenerateFatLibs.sh
@@ -8,171 +8,190 @@
#
# Note that all parameters passed to xcodebuild must be in the form of -parameter value instead of --parameter
+declare XCODE_IDE_DEV_PATH="${XCODE_IDE_DEV_PATH:-}"
+
declare XCODEBUILD_TARGET_SDK="${XCODEBUILD_TARGET_SDK:-iphoneos}"
declare XCODEBUILD_TARGET_SDK_VERSION="${XCODEBUILD_TARGET_SDK_VERSION}" # xcodebuild -showsdks
-if [ "$XCODEBUILD_TARGET_SDK" == "iphoneos" ] && [ -z "$XCODEBUILD_TARGET_SDK_VERSION" ]; then # ios
- XCODEBUILD_TARGET_SDK_VERSION="17.2"
+if [ "${XCODEBUILD_TARGET_SDK}" == "iphoneos" ] && [ -z "${XCODEBUILD_TARGET_SDK_VERSION}" ]; then # ios
+ XCODEBUILD_TARGET_SDK_VERSION="17.5" # requires xcode 15.4
-elif [ "$XCODEBUILD_TARGET_SDK" == "macosx" ] && [ -z "$XCODEBUILD_TARGET_SDK_VERSION" ]; then # maccatalyst
- XCODEBUILD_TARGET_SDK_VERSION="14.2"
+elif [ "${XCODEBUILD_TARGET_SDK}" == "macosx" ] && [ -z "${XCODEBUILD_TARGET_SDK_VERSION}" ]; then # maccatalyst
+ XCODEBUILD_TARGET_SDK_VERSION="14.5" # requires xcode 15.4
fi
declare SWIFT_BUILD_CONFIGURATION="${SWIFT_BUILD_CONFIGURATION:-Release}"
declare SUPPORTS_MACCATALYST="${SUPPORTS_MACCATALYST:-NO}"
-declare XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY="$XCODEBUILD_TARGET_SDK$XCODEBUILD_TARGET_SDK_VERSION"
+declare XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY="${XCODEBUILD_TARGET_SDK}${XCODEBUILD_TARGET_SDK_VERSION}"
declare SWIFT_OUTPUT_PATH="${SWIFT_OUTPUT_PATH:-./VendorFrameworks/swift-framework-proxy/}"
declare SWIFT_PROJECT_NAME="McuMgrBindingsiOS"
-declare SWIFT_BUILD_PATH="./$SWIFT_PROJECT_NAME/build"
+declare SWIFT_BUILD_PATH="./${SWIFT_PROJECT_NAME}/build"
declare SWIFT_BUILD_SCHEME="McuMgrBindingsiOS"
-declare SWIFT_PROJECT_PATH="./$SWIFT_PROJECT_NAME/$SWIFT_PROJECT_NAME.xcodeproj"
+declare SWIFT_PROJECT_PATH="./${SWIFT_PROJECT_NAME}/${SWIFT_PROJECT_NAME}.xcodeproj"
declare SWIFT_PACKAGES_PATH="./packages"
declare OUTPUT_FOLDER_POSTFIX=""
-if [ "$XCODEBUILD_TARGET_SDK" == "macosx" ]; then
- OUTPUT_FOLDER_POSTFIX="maccatalyst" # special case for mac catalyst
+if [ "${XCODEBUILD_TARGET_SDK}" == "macosx" ]; then
+ OUTPUT_FOLDER_POSTFIX="" # special case for mac catalyst sdk 15.2 wanted this to be "-maccatalyst" but sdk 15.4 wants it to be empty go figure ...
else
- OUTPUT_FOLDER_POSTFIX="$XCODEBUILD_TARGET_SDK"
+ OUTPUT_FOLDER_POSTFIX="-${XCODEBUILD_TARGET_SDK}"
fi
-declare OUTPUT_FOLDER_NAME="$SWIFT_BUILD_CONFIGURATION-$OUTPUT_FOLDER_POSTFIX" # Release-iphoneos or Release-maccatalyst note that we intentionally *omitted* the sdk-version from the folder name
-declare OUTPUT_SHARPIE_HEADER_FILES_PATH="SharpieOutput/SwiftFrameworkProxy.Binding" # contains the resulting files ApiDefinitions.cs and StructsAndEnums.cs
+declare OUTPUT_FOLDER_NAME="${SWIFT_BUILD_CONFIGURATION}${OUTPUT_FOLDER_POSTFIX}" # Release-iphoneos or Release-maccatalyst note that we intentionally *omitted* the sdk-version
+declare OUTPUT_SHARPIE_HEADER_FILES_PATH="SharpieOutput/SwiftFrameworkProxy.Binding" # from the folder name contains the resulting files ApiDefinitions.cs and StructsAndEnums.cs
-function print_macos_sdks() {
- echo "** xcode path : '$( "xcode-select" -p )'"
- echo "** xcode version : '$( "xcodebuild" -version )'"
+function print_setup() {
+ echo "** xcode path : '$( "xcode-select" --print-path )'"
+ echo "** xcode version : '$( "xcodebuild" -version )'"
echo "** xcode sdks :"
xcodebuild -showsdks
echo "** xcode sdks visible to sharpie :"
sharpie xcode -sdks
echo
- echo "** SWIFT_BUILD_PATH : '$SWIFT_BUILD_PATH' "
- echo "** SWIFT_OUTPUT_PATH : '$SWIFT_OUTPUT_PATH' "
- echo "** SWIFT_BUILD_SCHEME : '$SWIFT_BUILD_SCHEME' "
- echo "** SWIFT_PROJECT_NAME : '$SWIFT_PROJECT_NAME' "
- echo "** SWIFT_PROJECT_PATH : '$SWIFT_PROJECT_PATH' "
- echo "** SWIFT_PACKAGES_PATH : '$SWIFT_PACKAGES_PATH' "
- echo "** SWIFT_BUILD_CONFIGURATION : '$SWIFT_BUILD_CONFIGURATION' "
+ echo "** SWIFT_BUILD_PATH : '${SWIFT_BUILD_PATH}' "
+ echo "** SWIFT_OUTPUT_PATH : '${SWIFT_OUTPUT_PATH}' "
+ echo "** SWIFT_BUILD_SCHEME : '${SWIFT_BUILD_SCHEME}' "
+ echo "** SWIFT_PROJECT_NAME : '${SWIFT_PROJECT_NAME}' "
+ echo "** SWIFT_PROJECT_PATH : '${SWIFT_PROJECT_PATH}' "
+ echo "** SWIFT_PACKAGES_PATH : '${SWIFT_PACKAGES_PATH}' "
+ echo "** SWIFT_BUILD_CONFIGURATION : '${SWIFT_BUILD_CONFIGURATION}' "
+ echo
+ echo "** OUTPUT_FOLDER_NAME : '${OUTPUT_FOLDER_NAME}' "
+ echo "** OUTPUT_SHARPIE_HEADER_FILES_PATH : '${OUTPUT_SHARPIE_HEADER_FILES_PATH}' "
+ echo
+ echo "** SUPPORTS_MACCATALYST : '${SUPPORTS_MACCATALYST}' "
echo
- echo "** OUTPUT_FOLDER_NAME : '$OUTPUT_FOLDER_NAME' "
- echo "** OUTPUT_SHARPIE_HEADER_FILES_PATH : '$OUTPUT_SHARPIE_HEADER_FILES_PATH' "
+ echo "** XCODE_IDE_DEV_PATH : '${XCODE_IDE_DEV_PATH:-(No path specified so the system-wide default xcode currently in effect will be used)}'"
echo
- echo "** SUPPORTS_MACCATALYST : '$SUPPORTS_MACCATALYST' "
- echo "** XCODEBUILD_TARGET_SDK : '$XCODEBUILD_TARGET_SDK' "
+ echo "** XCODEBUILD_TARGET_SDK : '${XCODEBUILD_TARGET_SDK}' "
echo "** XCODEBUILD_TARGET_SDK_VERSION : '${XCODEBUILD_TARGET_SDK_VERSION:-(No specific version specified so the latest version will be used)}'"
- echo "** XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY : '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY' "
+ echo "** XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY : '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}' "
echo
}
+function set_system_wide_default_xcode_ide() {
+ declare -r currentXcodeDevPath=$( "xcode-select" --print-path )
+ if [ "${XCODE_IDE_DEV_PATH}" != "" ] && [ "${currentXcodeDevPath}" != "${XCODE_IDE_DEV_PATH}" ]; then
+ echo "** Setting Xcode IDE path to '${XCODE_IDE_DEV_PATH}' - remember to manually revert it back to '${currentXcodeDevPath}' after the build is done!"
+ sudo xcode-select --switch "${XCODE_IDE_DEV_PATH}"
+ local exitCode=$?
+
+ if [ ${exitCode} -ne 0 ]; then
+ echo "** [FAILED] Failed to set xcode-select to '${XCODE_IDE_DEV_PATH}'"
+ exit 1
+ fi
+ fi
+}
+
function build() {
- echo "** Build $OUTPUT_FOLDER_NAME framework for device"
+ echo "** Building '${OUTPUT_FOLDER_NAME}' framework for device ..."
echo "**** (Build 1/3) Cleanup any possible traces of previous builds"
- rm -Rf "$SWIFT_BUILD_PATH"
- rm -Rf "$SWIFT_PACKAGES_PATH"
- rm -Rf "$OUTPUT_SHARPIE_HEADER_FILES_PATH"
+ rm -Rf "${SWIFT_BUILD_PATH}"
+ rm -Rf "${SWIFT_PACKAGES_PATH}"
+ rm -Rf "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"
- echo "**** (Build 2/3) Restore packages for '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY'"
+ echo "**** (Build 2/3) Restore packages for '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}'"
xcodebuild \
- -sdk "$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY" \
+ -sdk "${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}" \
-arch "arm64" \
- -scheme "$SWIFT_BUILD_SCHEME" \
- -project "$SWIFT_PROJECT_PATH" \
- -configuration "$SWIFT_BUILD_CONFIGURATION" \
- -clonedSourcePackagesDirPath "$SWIFT_PACKAGES_PATH" \
+ -scheme "${SWIFT_BUILD_SCHEME}" \
+ -project "${SWIFT_PROJECT_PATH}" \
+ -configuration "${SWIFT_BUILD_CONFIGURATION}" \
+ -clonedSourcePackagesDirPath "${SWIFT_PACKAGES_PATH}" \
-resolvePackageDependencies
local exitCode=$?
- if [ $exitCode -ne 0 ]; then
- echo "** [FAILED] Failed to download dependencies for '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY'"
+ if [ ${exitCode} -ne 0 ]; then
+ echo "** [FAILED] Failed to download dependencies for '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}'"
exit 1
fi
- echo "**** (Build 3/3) Build for '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY'"
+ echo "**** (Build 3/3) Build for '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}'"
# https://stackoverflow.com/a/74478244/863651
xcodebuild \
- -sdk "$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY" \
+ -sdk "${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}" \
-arch "arm64" \
- -scheme "$SWIFT_BUILD_SCHEME" \
- -project "$SWIFT_PROJECT_PATH" \
- -configuration "$SWIFT_BUILD_CONFIGURATION" \
- -derivedDataPath "$SWIFT_BUILD_PATH" \
- -clonedSourcePackagesDirPath "$SWIFT_PACKAGES_PATH" \
+ -scheme "${SWIFT_BUILD_SCHEME}" \
+ -project "${SWIFT_PROJECT_PATH}" \
+ -configuration "${SWIFT_BUILD_CONFIGURATION}" \
+ -derivedDataPath "${SWIFT_BUILD_PATH}" \
+ -clonedSourcePackagesDirPath "${SWIFT_PACKAGES_PATH}" \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_ALLOWED="NO" \
- SUPPORTS_MACCATALYST="$SUPPORTS_MACCATALYST" \
+ SUPPORTS_MACCATALYST="${SUPPORTS_MACCATALYST}" \
CODE_SIGNING_REQUIRED="NO"
local exitCode=$?
- if [ $exitCode -ne 0 ]; then
- echo "** [FAILED] Failed to build '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY'"
+ if [ ${exitCode} -ne 0 ]; then
+ echo "** [FAILED] Failed to build '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}'"
exit 1
fi
}
function create_fat_binaries() {
- echo "** Create fat binaries for '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY-$SWIFT_BUILD_CONFIGURATION'"
+ echo "** Create fat binaries for '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}-${SWIFT_BUILD_CONFIGURATION}'"
- echo "**** (FatBinaries 1/8) Copy '$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY' build as a fat framework"
+ echo "**** (FatBinaries 1/8) Copy '${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}' build as a fat framework"
cp \
-R \
- "$SWIFT_BUILD_PATH/Build/Products/$OUTPUT_FOLDER_NAME" \
- "$SWIFT_BUILD_PATH/fat"
+ "${SWIFT_BUILD_PATH}/Build/Products/${OUTPUT_FOLDER_NAME}" \
+ "${SWIFT_BUILD_PATH}/fat"
local exitCode=$?
- if [ $exitCode -ne 0 ]; then
+ if [ ${exitCode} -ne 0 ]; then
echo "** [FAILED] Failed to copy"
exit 1
fi
echo "**** LISTING 'PRODUCTS' FILES"
- ls -lR "$SWIFT_BUILD_PATH/Build/Products/"
+ ls -lR "${SWIFT_BUILD_PATH}/Build/Products/"
echo "**** LISTING LIPO INPUT FILES"
- ls -lR "$SWIFT_BUILD_PATH/Build/Products/$OUTPUT_FOLDER_NAME/$SWIFT_PROJECT_NAME.framework/$SWIFT_PROJECT_NAME"
+ ls -lR "${SWIFT_BUILD_PATH}/Build/Products/${OUTPUT_FOLDER_NAME}/${SWIFT_PROJECT_NAME}.framework/${SWIFT_PROJECT_NAME}"
- echo "**** (FatBinaries 2/8) Turn artifacts in '$OUTPUT_FOLDER_NAME' into fat libraries"
+ echo "**** (FatBinaries 2/8) Turn artifacts in '${OUTPUT_FOLDER_NAME}' into fat libraries"
lipo \
-create \
- -output "$SWIFT_BUILD_PATH/fat/$SWIFT_PROJECT_NAME.framework/$SWIFT_PROJECT_NAME" \
- "$SWIFT_BUILD_PATH/Build/Products/$OUTPUT_FOLDER_NAME/$SWIFT_PROJECT_NAME.framework/$SWIFT_PROJECT_NAME"
+ -output "${SWIFT_BUILD_PATH}/fat/${SWIFT_PROJECT_NAME}.framework/${SWIFT_PROJECT_NAME}" \
+ "${SWIFT_BUILD_PATH}/Build/Products/${OUTPUT_FOLDER_NAME}/${SWIFT_PROJECT_NAME}.framework/${SWIFT_PROJECT_NAME}"
local exitCode=$?
- if [ $exitCode -ne 0 ]; then
+ if [ ${exitCode} -ne 0 ]; then
echo "** [FAILED] Failed to combine configurations"
exit 1
fi
echo "**** LISTING LIPO OUTPUT FILES"
- ls -lR "$SWIFT_BUILD_PATH/fat/$SWIFT_PROJECT_NAME.framework/$SWIFT_PROJECT_NAME"
+ ls -lR "${SWIFT_BUILD_PATH}/fat/${SWIFT_PROJECT_NAME}.framework/${SWIFT_PROJECT_NAME}"
echo "**** (FatBinaries 3/8) Verify results"
lipo \
-info \
- "$SWIFT_BUILD_PATH/fat/$SWIFT_PROJECT_NAME.framework/$SWIFT_PROJECT_NAME"
+ "${SWIFT_BUILD_PATH}/fat/${SWIFT_PROJECT_NAME}.framework/${SWIFT_PROJECT_NAME}"
local exitCode=$?
- if [ $exitCode -ne 0 ]; then
+ if [ ${exitCode} -ne 0 ]; then
echo "** [FAILED] Failed to verify results"
exit 1
fi
echo "**** (FatBinaries 4/8) Copy fat frameworks to the output folder"
- rm -Rf "$SWIFT_OUTPUT_PATH" &&
- mkdir -p "$SWIFT_OUTPUT_PATH" &&
+ rm -Rf "${SWIFT_OUTPUT_PATH}" &&
+ mkdir -p "${SWIFT_OUTPUT_PATH}" &&
cp -Rf \
- "$SWIFT_BUILD_PATH/fat/$SWIFT_PROJECT_NAME.framework" \
- "$SWIFT_OUTPUT_PATH"
+ "${SWIFT_BUILD_PATH}/fat/${SWIFT_PROJECT_NAME}.framework" \
+ "${SWIFT_OUTPUT_PATH}"
local exitCode=$?
- if [ $exitCode -ne 0 ]; then
+ if [ ${exitCode} -ne 0 ]; then
echo "** [FAILED] Failed to copy fat frameworks"
exit 1
fi
@@ -181,16 +200,16 @@ function create_fat_binaries() {
set -x
sharpie \
bind \
- -sdk "$XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY" \
- -scope "$SWIFT_OUTPUT_PATH/$SWIFT_PROJECT_NAME.framework/Headers/" \
- -output "$OUTPUT_SHARPIE_HEADER_FILES_PATH" \
- -namespace "$SWIFT_PROJECT_NAME" \
- "$SWIFT_OUTPUT_PATH/$SWIFT_PROJECT_NAME.framework/Headers/$SWIFT_PROJECT_NAME-Swift.h" \
+ -sdk "${XCODEBUILD_TARGET_SDK_WITH_VERSION_IF_ANY}" \
+ -scope "${SWIFT_OUTPUT_PATH}/${SWIFT_PROJECT_NAME}.framework/Headers/" \
+ -output "${OUTPUT_SHARPIE_HEADER_FILES_PATH}" \
+ -namespace "${SWIFT_PROJECT_NAME}" \
+ "${SWIFT_OUTPUT_PATH}/${SWIFT_PROJECT_NAME}.framework/Headers/${SWIFT_PROJECT_NAME}-Swift.h" \
-clang -arch arm64 # vital needed for mac-catalyst
local exitCode=$?
set +x
- if [ $exitCode -ne 0 ]; then
+ if [ ${exitCode} -ne 0 ]; then
echo "** [FAILED] Failed to generate binding api definitions and structs"
exit 1
fi
@@ -198,53 +217,53 @@ function create_fat_binaries() {
echo "**** (FatBinaries 6/8) Print metadata files in their original form"
echo
- echo "$OUTPUT_SHARPIE_HEADER_FILES_PATH/ApiDefinitions.cs (original):"
+ echo "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/ApiDefinitions.cs (original):"
echo "==================================================="
- cat "$OUTPUT_SHARPIE_HEADER_FILES_PATH/ApiDefinitions.cs"
+ cat "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/ApiDefinitions.cs"
echo
echo "===================================================="
echo
echo
- echo "$OUTPUT_SHARPIE_HEADER_FILES_PATH/StructsAndEnums.cs (original):"
+ echo "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/StructsAndEnums.cs (original):"
echo "===================================================="
- cat "$OUTPUT_SHARPIE_HEADER_FILES_PATH/StructsAndEnums.cs"
+ cat "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/StructsAndEnums.cs"
echo
echo "===================================================="
echo
echo "**** (FatBinaries 7/8) Replace NativeHandle -> IntPtr in the generated c# files"
- rm -f "$OUTPUT_SHARPIE_HEADER_FILES_PATH"/*.bak || :
+ rm -f "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"/*.bak || :
# starting from net8 sharpie seems to generate a file that is missing the using CoreBluetooth; directive from the top of the file so we have to add it ourselves
- sed -i.bak '1s/^/using CoreBluetooth;\n/' "$OUTPUT_SHARPIE_HEADER_FILES_PATH/ApiDefinitions.cs"
+ sed -i.bak '1s/^/using CoreBluetooth;\n/' "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/ApiDefinitions.cs"
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak "s/NativeHandle[ ]/IntPtr /gi" {} \;
- rm -f "$OUTPUT_SHARPIE_HEADER_FILES_PATH"/*.bak || :
+ rm -f "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"/*.bak || :
# also need to get rid of stupid autogenerated [verify(...)] attributes which are intentionally placed there
# by sharpie to force manual verification of the .cs files that have been autogenerated
#
# https://learn.microsoft.com/en-us/xamarin/cross-platform/macios/binding/objective-sharpie/platform/verify
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/\[Verify\s*\(.*\)\]//gi' {} \;
- rm -f "$OUTPUT_SHARPIE_HEADER_FILES_PATH"/*.bak || :
+ rm -f "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"/*.bak || :
# [BaseType (typeof(NSObject), Name = "...")] -> [BaseType (typeof(NSObject))]
# find \
- # "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ # "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
# -type f \
# -exec sed -i.bak 's/\[BaseType\s*\(.*_TtC17McuMgrBindingsiOS17IOSDeviceResetter.*\)\]/[BaseType (typeof(NSObject), Name = "IOSDeviceResetter")]/gi' {} \;
#
- # rm -f "$OUTPUT_SHARPIE_HEADER_FILES_PATH"/*.bak || :
+ # rm -f "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"/*.bak || :
# https://learn.microsoft.com/en-us/xamarin/ios/internals/registrar?force_isolation=true#new-registrar-required-changes-to-bindings
#
@@ -253,81 +272,82 @@ function create_fat_binaries() {
# so I'm not 100% sure why the [Protocol] attribute does away with the observed error but it does the trick of solving the problem somehow
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSFileUploader/[Protocol] interface IOSFileUploader/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSFileDownloader/[Protocol] interface IOSFileDownloader/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSDeviceResetter/[Protocol] interface IOSDeviceResetter/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSFirmwareEraser/[Protocol] interface IOSFirmwareEraser/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSFirmwareInstaller/[Protocol] interface IOSFirmwareInstaller/gi' {} \;
- rm -f "$OUTPUT_SHARPIE_HEADER_FILES_PATH"/*.bak || :
+ rm -f "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"/*.bak || :
# https://stackoverflow.com/a/49477937/863651 its vital to add [BaseType] to the interface otherwise compilation will fail
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSListenerForFileUploader/[BaseType(typeof(NSObject))] [Model] interface IOSListenerForFileUploader/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSListenerForFileDownloader/[BaseType(typeof(NSObject))] [Model] interface IOSListenerForFileDownloader/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSListenerForDeviceResetter/[BaseType(typeof(NSObject))] [Model] interface IOSListenerForDeviceResetter/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSListenerForFirmwareEraser/[BaseType(typeof(NSObject))] [Model] interface IOSListenerForFirmwareEraser/gi' {} \;
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/interface IOSListenerForFirmwareInstaller/[BaseType(typeof(NSObject))] [Model] interface IOSListenerForFirmwareInstaller/gi' {} \;
# some plain methods unfortunately get autoprojected into properties by sharpie so we need to fix that
find \
- "$OUTPUT_SHARPIE_HEADER_FILES_PATH/" \
+ "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/" \
-type f \
-exec sed -i.bak 's/bool TryInvalidateCachedTransport { get; }/bool TryInvalidateCachedTransport();/gi' {} \;
- rm -f "$OUTPUT_SHARPIE_HEADER_FILES_PATH"/*.bak || :
+ rm -f "${OUTPUT_SHARPIE_HEADER_FILES_PATH}"/*.bak || :
echo "**** (FatBinaries 8/8) Print metadata files in their eventual form"
echo
- echo "$OUTPUT_SHARPIE_HEADER_FILES_PATH/ApiDefinitions.cs (eventual):"
+ echo "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/ApiDefinitions.cs (eventual):"
echo "==================================================="
- cat "$OUTPUT_SHARPIE_HEADER_FILES_PATH/ApiDefinitions.cs"
+ cat "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/ApiDefinitions.cs"
echo
echo "===================================================="
echo
echo
- echo "$OUTPUT_SHARPIE_HEADER_FILES_PATH/StructsAndEnums.cs (eventual):"
+ echo "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/StructsAndEnums.cs (eventual):"
echo "===================================================="
- cat "$OUTPUT_SHARPIE_HEADER_FILES_PATH/StructsAndEnums.cs"
+ cat "${OUTPUT_SHARPIE_HEADER_FILES_PATH}/StructsAndEnums.cs"
echo
echo "===================================================="
echo
}
function main() {
- print_macos_sdks
- build
- create_fat_binaries
+ set_system_wide_default_xcode_ide # order
+ print_setup # order
+ build # order
+ create_fat_binaries # order
echo "** Done!"
}
diff --git a/Laerdal.McuMgr.Bindings.NetStandard/Laerdal.McuMgr.Bindings.NetStandard.csproj b/Laerdal.McuMgr.Bindings.NetStandard/Laerdal.McuMgr.Bindings.NetStandard.csproj
index d84b1442..bbcef837 100644
--- a/Laerdal.McuMgr.Bindings.NetStandard/Laerdal.McuMgr.Bindings.NetStandard.csproj
+++ b/Laerdal.McuMgr.Bindings.NetStandard/Laerdal.McuMgr.Bindings.NetStandard.csproj
@@ -37,10 +37,10 @@
$(AllowedReferenceRelatedFileExtensions);.pdb
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
$(PackageId)
McuMgr C# Implementation (WIP)
diff --git a/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj b/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj
index 73425131..0b4d34d9 100644
--- a/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj
+++ b/Laerdal.McuMgr.Bindings.iOS/Laerdal.McuMgr.Bindings.iOS.csproj
@@ -34,6 +34,10 @@
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), 'Frameworks'))
$(NativeFrameworkParentFolderpath)/McuMgrBindingsiOS.framework
+
+
+
+
@@ -66,10 +70,10 @@
$(AllowedReferenceRelatedFileExtensions);.pdb
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
$(PackageId)
McuMgr Bindings for iOS - MAUI ready
@@ -159,7 +163,16 @@
-
+
+
+ <_CliCommand>$(_CliCommand) SWIFT_OUTPUT_PATH='$(NativeFrameworkParentFolderpath)'
+ <_CliCommand>$(_CliCommand) XCODE_IDE_DEV_PATH='$(Laerdal_Bindings_iOS___Xcode_Ide_Dev_Path)'
+ <_CliCommand>$(_CliCommand) XCODEBUILD_TARGET_SDK='iphoneos'
+ <_CliCommand>$(_CliCommand) XCODEBUILD_TARGET_SDK_VERSION='$(Laerdal_Bindings_iOS___Sdk_Version)'
+ <_CliCommand>$(_CliCommand) ./Laerdal.Mac.CompileAndGenerateFatLibs.sh
+
+
+
diff --git a/Laerdal.McuMgr/Laerdal.McuMgr.csproj b/Laerdal.McuMgr/Laerdal.McuMgr.csproj
index 3782687d..caecd107 100644
--- a/Laerdal.McuMgr/Laerdal.McuMgr.csproj
+++ b/Laerdal.McuMgr/Laerdal.McuMgr.csproj
@@ -55,10 +55,10 @@
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
- 1.0.1039.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
+ 1.0.1150.0
$(PackageId)
$(Authors)
@@ -149,21 +149,21 @@
-
+
-
+
-
+
-
+
diff --git a/Laerdal.Scripts/Laerdal.Builder.targets b/Laerdal.Scripts/Laerdal.Builder.targets
index d30f82fa..60c88402 100644
--- a/Laerdal.Scripts/Laerdal.Builder.targets
+++ b/Laerdal.Scripts/Laerdal.Builder.targets
@@ -29,12 +29,13 @@
%0A
+
Release
true
$(BUILD_ARTIFACTSTAGINGDIRECTORY)
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), `..`, `Artifacts/`))
-
+
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), `..`, `TestResults`))
@@ -42,7 +43,17 @@
true
false
-
+
+
+
+
+
+
+
+
+
+
+
gradle
$(BUILD_SOURCEBRANCH)
$(BUILD_REPOSITORY_NAME)
@@ -58,11 +69,11 @@
-
-
+
+
-
-
+
+
@@ -78,9 +89,9 @@
main
develop
- <_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) -o '$(Laerdal_Version_Details_Filepath)'
- <_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) --major '$(Laerdal_Version_Major)'
- <_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) --master-branch '$(Laerdal_Master_Branch_Name)'
+ <_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) -o '$(Laerdal_Version_Details_Filepath)'
+ <_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) --major '$(Laerdal_Version_Major)'
+ <_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) --master-branch '$(Laerdal_Master_Branch_Name)'
<_Laerdal_Version_Script_Parameters>$(_Laerdal_Version_Script_Parameters) --develop-branch '$(Laerdal_Develop_Branch_Name)'
@@ -136,27 +147,27 @@
- <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<Version>.*?</Version>" ReplacementText="<Version>$(Version)</Version>" />
- <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<FileVersion>.*?</FileVersion>" ReplacementText="<FileVersion>$(Version)</FileVersion>" />
- <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<PackageVersion>.*?</PackageVersion>" ReplacementText="<PackageVersion>$(Version)</PackageVersion>" />
- <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<AssemblyVersion>.*?</AssemblyVersion>" ReplacementText="<AssemblyVersion>$(Version)</AssemblyVersion>" />
+ <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<Version>.*?</Version>" ReplacementText="<Version>$(Version)</Version>"/>
+ <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<FileVersion>.*?</FileVersion>" ReplacementText="<FileVersion>$(Version)</FileVersion>"/>
+ <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<PackageVersion>.*?</PackageVersion>" ReplacementText="<PackageVersion>$(Version)</PackageVersion>"/>
+ <_replaceRegexInFile InputFile="$(ProjectFile)" Regex="<AssemblyVersion>.*?</AssemblyVersion>" ReplacementText="<AssemblyVersion>$(Version)</AssemblyVersion>"/>
<_replaceRegexInFile InputFile="$(ProjectFile)"
Regex="<PackageReference Include="Laerdal.McuMgr.Bindings.Android" Version=".*?""
- ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.Android" Version="$(Version)"" />
+ ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.Android" Version="$(Version)""/>
<_replaceRegexInFile InputFile="$(ProjectFile)"
Regex="<PackageReference Include="Laerdal.McuMgr.Bindings.iOS" Version=".*?""
- ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.iOS" Version="$(Version)"" />
+ ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.iOS" Version="$(Version)""/>
<_replaceRegexInFile InputFile="$(ProjectFile)"
Regex="<PackageReference Include="Laerdal.McuMgr.Bindings.MacCatalyst" Version=".*?""
- ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.MacCatalyst" Version="$(Version)"" />
+ ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.MacCatalyst" Version="$(Version)""/>
<_replaceRegexInFile InputFile="$(ProjectFile)"
Regex="<PackageReference Include="Laerdal.McuMgr.Bindings.NetStandard" Version=".*?""
- ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.NetStandard" Version="$(Version)"" />
+ ReplacementText="<PackageReference Include="Laerdal.McuMgr.Bindings.NetStandard" Version="$(Version)""/>
-
-
-
+
+
+
@@ -193,6 +204,7 @@
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)GradlePath=$(Laerdal_Gradle_Path);
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)Configuration=$(Configuration);
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)PackageOutputPath=$(PackageOutputPath);
+ <_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)ContinuousIntegrationBuild=$(Is_CI_Build);
<_Laerdal_Build_Parameters>$(_Laerdal_Build_Parameters)Should_Skip_MacCatalyst=$(Should_Skip_MacCatalyst);
@@ -209,14 +221,15 @@
-
-
-
-
-
+
+
+
+
+
+
-
+
@@ -229,10 +242,10 @@
Properties="Configuration=$(Configuration);Should_Skip_MacCatalyst=$(Should_Skip_MacCatalyst);"/>
- $(TestParameters) test 'Laerdal.McuMgr.Tests/Laerdal.McuMgr.Tests.csproj'
- $(TestParameters) --logger 'trx;LogFileName=TEST-Laerdal.McuMgr.Tests.xml'
- $(TestParameters) --verbosity '4'
- $(TestParameters) --configuration '$(Configuration)'
+ $(TestParameters) test 'Laerdal.McuMgr.Tests/Laerdal.McuMgr.Tests.csproj'
+ $(TestParameters) --logger 'trx;LogFileName=TEST-Laerdal.McuMgr.Tests.xml'
+ $(TestParameters) --verbosity '4'
+ $(TestParameters) --configuration '$(Configuration)'
$(TestParameters) --results-directory '$(Laerdal_Test_Results_Folderpath)'
@@ -266,19 +279,19 @@
Condition=" '$(Laerdal_Should_Tag_And_Release)' == 'True' "
AfterTargets="RunTests">
-
-
-
-
+
+
+
+
$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), `Laerdal.CreateNewReleaseInGithub.sh`))
- <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --log
- <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --git-branch '$(Laerdal_Source_Branch)'
- <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --tag-version '$(Laerdal_Version_Base)'
- <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --access-token '$(Laerdal_Github_Access_Token)'
- <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --repository-path '$(Laerdal_Repository_Path)'
+ <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --log
+ <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --git-branch '$(Laerdal_Source_Branch)'
+ <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --tag-version '$(Laerdal_Version_Base)'
+ <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --access-token '$(Laerdal_Github_Access_Token)'
+ <_Laerdal_Create_Github_Release_Script_Parameters>$(_Laerdal_Create_Github_Release_Script_Parameters) --repository-path '$(Laerdal_Repository_Path)'
diff --git a/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh b/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh
index bce73781..625f1c28 100644
--- a/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh
+++ b/Laerdal.Scripts/Laerdal.SetupBuildEnvironment.sh
@@ -134,13 +134,13 @@ echo "** XCode Installations:"
ls -ld /Applications/Xcode* || exit 90
-sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
-declare exitCode=$?
-if [ $exitCode != 0 ]; then
- echo "##vso[task.logissue type=error]Failed to apply 'xcode-select'."
- exit 90
-fi
-echo
+#sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
+#declare exitCode=$?
+#if [ $exitCode != 0 ]; then
+# echo "##vso[task.logissue type=error]Failed to apply 'xcode-select'."
+# exit 90
+#fi
+#echo
echo
echo "** XCode SDKs:"
diff --git a/README.md b/README.md
index 86c3c215..c9ddcf37 100644
--- a/README.md
+++ b/README.md
@@ -70,9 +70,9 @@ The following types of operations are supported on devices running on Nordic's n
## ✅ Nuget Platform-Support Matrix
-| Stack | Android | iOS | MacCatalyst (MacOS / iPad / iOS) | Windows / UWP (NetStandard2.0) |
-|-----------|---------------------------------------------------------------------------|-----------------------------------|-------------------------------------------------|----------------------------------------------------------------------------------|
-| DotNet 8+ | ✅ Min 5.0 / Recommended 11.0+ / Max 14.0
(api-levels: 20 / 30 / 34) | ✅ 11.0+
(sdk: iphoneos16.2) | ✅ 13.1+
(MacOS: 10.15+, iOS/iPadOS: 13+ ) | 🚧 (Much much later ...) |
+| Stack | Android | iOS | MacCatalyst (MacOS / iPad / iOS) | Windows / UWP (NetStandard2.0) |
+|-----------|---------------------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------|----------------------------------------------------------------------------------|
+| DotNet 8+ | ✅ Min 5.0 / Recommended 11.0+ / Max 14.0
(api-levels: 20 / 30 / 34) | ✅ 17.0+ ( requires iPhoneXR or better )
( sdk: iphoneos-sdk 17.5 ) | ✅ 13.1+
( MacOS: 10.15+, iOS/iPadOS: 13+ ) | 🚧 (Much much later ...) |
## ❗️ Salient Points
@@ -88,6 +88,9 @@ to the device.**
- **At the time of this writing the generated ios-nugets are built based on the iphoneos16.2 sdk**
- **For the time being Nordics' Android/Java libs are compiled in a way that emits Java1.8 bytecode so as to keep the libraries backwards compatible with versions of Android all the way back to 7. Our Java "glue-code" under 'Laerdal.McuMgr.Bindings.Android.Native' is compiled in the same fashion.**
+
+- **To compile the iOS/MacCatalyst libs on localdev with their default settings you will need MacOS with XCode version 15.4 and iPhoneOS SDK 17.5.**
+ The reason McuMgr libs only support iPhones that can run iOS17 or better is simply because as of April 2024 all iOS and iPadOS apps submitted to the App Store must be built with a minimum of Xcode 15.x and the iOS 17.x SDK! The iOS 17.x SDK only supports iPhones/iPads that can run version 17.x of their respective OSes or better.
## 🚀 Using the Nugets in your Projects
@@ -96,7 +99,7 @@ Add the following Nuget packages.
Laerdal.McuMgr
Laerdal.McuMgr.Bindings.iOS (only add this to those projects of yours that target iOS)
Laerdal.McuMgr.Bindings.Android (only add this to those projects of yours that target Android)
- Laerdal.McuMgr.Bindings.MacCatalyst (WIP!) (only add this to those projects of yours that target MacCatalyst aka MacDesktop+iPad)
+ Laerdal.McuMgr.Bindings.MacCatalyst (only add this to those projects of yours that target MacCatalyst aka MacDesktop+iPad)
Laerdal.McuMgr.Bindings.NetStandard (WIP!) (only add this to those projects of yours that target Windows/UWP)
Make sure to always get the latest versions of the above packages.
@@ -673,11 +676,11 @@ To build the nugets from source follow these instructions:
#### 1) Checkout
```bash
-git clone git@github.com:Laerdal-Medical/scl-mcumgr.git mcumgr.mst
+git clone git@github.com:Laerdal-Medical/Laerdal.McuMgr.git mcumgr.mst
# or for develop
-git clone git@github.com:Laerdal-Medical/scl-mcumgr.git --branch develop mcumgr.dev
+git clone git@github.com:Laerdal-Medical/Laerdal.McuMgr.git --branch develop mcumgr.dev
```
#### 2) Make sure you have .Net7 and .Net-Framework 4.8+ installed on your machine along with the workloads for maui, android and ios
@@ -754,7 +757,7 @@ Same goes for the testbed-ui app. If you want to build it locally you'll have to
#### 6) Set MSBuild version to ver.17
-#### 7) On Mac make sure to install XCode 14.3+ (if you have multiple XCodes installed then make SDK 14.3+ the default by running 'sudo xcode-select -s /Applications/Xcode_XYZ.app/Contents/Developer').
+#### 7) On Mac make sure to install XCode 14.3+ (if you have multiple XCodes installed then make SDK 14.3+ the default by running 'sudo xcode-select --switch /Applications/Xcode_XYZ.app/Contents/Developer').
#### 8) On Windows you have to also make sure you have enabled in the OS (registry) 'Long Path Support' otherwise the build will fail due to extremely long paths.
@@ -817,6 +820,7 @@ the aspects being affected.
- [Nordic nRF Connect Device Manager](https://github.com/NordicSemiconductor/Android-nRF-Connect-Device-Manager)
- [Nordic Infocenter](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_welcome%2Fstruct%2Fwelcome.html)
+- [iPhone models and supported iOS versions](https://iosref.com/ios)
## Credits & Acknowledgements