Эх сурвалжийг харах

ci: update the script for better detection of running xcode version

DreamPiggy 1 жил өмнө
parent
commit
69aa3bde21

+ 4 - 0
.github/workflows/CD.yml

@@ -17,6 +17,8 @@ jobs:
       LC_ALL: en_US.UTF-8
       LC_ALL: en_US.UTF-8
       CODESIGN_KEY_BASE64: "${{ secrets.CODESIGN_KEY_BASE64 }}"
       CODESIGN_KEY_BASE64: "${{ secrets.CODESIGN_KEY_BASE64 }}"
       DEVELOPER_DIR: /Applications/Xcode_16.0.app
       DEVELOPER_DIR: /Applications/Xcode_16.0.app
+      XCODE_VERSION_MAJOR: 1600
+      XCODE_VERSION_MINOR: 1600
     strategy:
     strategy:
       fail-fast: true
       fail-fast: true
       matrix:
       matrix:
@@ -33,6 +35,7 @@ jobs:
       - name: Build XCFramework
       - name: Build XCFramework
         run: |
         run: |
           set -o pipefail
           set -o pipefail
+          set -x
           export MACH_O_TYPE="${{ matrix.MACH_O_TYPE }}"
           export MACH_O_TYPE="${{ matrix.MACH_O_TYPE }}"
           ./Scripts/build-frameworks.sh
           ./Scripts/build-frameworks.sh
           rm -rf ~/Library/Developer/Xcode/DerivedData/
           rm -rf ~/Library/Developer/Xcode/DerivedData/
@@ -40,6 +43,7 @@ jobs:
       - name: Create XCFramework
       - name: Create XCFramework
         run: |
         run: |
           set -o pipefail
           set -o pipefail
+          set -x
           export MACH_O_TYPE="${{ matrix.MACH_O_TYPE }}"
           export MACH_O_TYPE="${{ matrix.MACH_O_TYPE }}"
           ./Scripts/create-xcframework.sh
           ./Scripts/create-xcframework.sh
           ./Scripts/sign-xcframework.sh
           ./Scripts/sign-xcframework.sh

+ 16 - 8
Scripts/build-frameworks.sh

@@ -1,14 +1,22 @@
 #!/bin/bash
 #!/bin/bash
 
 
 set -e
 set -e
-set -x
 set -o pipefail
 set -o pipefail
 
 
-XCODE_VERSION=$(xcodebuild -version | head -n 1| awk -F ' ' '{print $2}')
-XCODE_VERSION_MAJOR=$(echo $XCODE_VERSION | awk -F '.' '{print $1}')
-XCODE_VERSION_MINOR=$(echo $XCODE_VERSION | awk -F '.' '{print $2}')
-XCODE_VERSION_PATCH=$(echo $XCODE_VERSION | awk -F '.' '{print $3}')
-if [ -z "$SRCROOT" ]
+if [[ -z "$XCODE_VERSION_MAJOR" ]]
+then
+    XCODE_VERSION_MAJOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MAJOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
+fi
+if [[ -z "$XCODE_VERSION_MINOR" ]]  
+then
+    XCODE_VERSION_MINOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MINOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
+fi
+XCODE_MAJOR=$(($XCODE_VERSION_MAJOR / 100))
+XCODE_MINOR=$(($XCODE_VERSION_MINOR / 10))
+XCODE_MINOR=$(($XCODE_MINOR % 10))
+echo "XCODE_MAJOR=$XCODE_MAJOR"
+echo "XCODE_MINOR=$XCODE_MINOR"
+if [[ -z "$SRCROOT" ]]
 then
 then
     SRCROOT=$(pwd)
     SRCROOT=$(pwd)
 fi
 fi
@@ -16,12 +24,12 @@ fi
 mkdir -p "${SRCROOT}/build"
 mkdir -p "${SRCROOT}/build"
 PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
 PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
 
 
-if [ $XCODE_VERSION_MAJOR -ge 11 ]
+if [ $XCODE_MAJOR -ge 11 ]
 then
 then
     PLATFORMS+=("macCatalyst")
     PLATFORMS+=("macCatalyst")
 fi
 fi
 
 
-if [[ ($XCODE_VERSION_MAJOR -gt 15) || ($XCODE_VERSION_MAJOR -eq 15 && $XCODE_VERSION_MINOR -ge 2) ]]
+if [[ ($XCODE_MAJOR -gt 15) || ($XCODE_MAJOR -eq 15 && $XCODE_MINOR -ge 2) ]]
 then
 then
     PLATFORMS+=("visionOS")
     PLATFORMS+=("visionOS")
     PLATFORMS+=("visionOSSimulator")
     PLATFORMS+=("visionOSSimulator")

+ 16 - 7
Scripts/create-xcframework.sh

@@ -3,16 +3,25 @@
 set -e
 set -e
 set -o pipefail
 set -o pipefail
 
 
-XCODE_VERSION=$(xcodebuild -version | head -n 1| awk -F ' ' '{print $2}')
-XCODE_VERSION_MAJOR=$(echo $XCODE_VERSION | awk -F '.' '{print $1}')
-XCODE_VERSION_MINOR=$(echo $XCODE_VERSION | awk -F '.' '{print $2}')
-XCODE_VERSION_PATCH=$(echo $XCODE_VERSION | awk -F '.' '{print $3}')
+if [[ -z "$XCODE_VERSION_MAJOR" ]]
+then
+    XCODE_VERSION_MAJOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MAJOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
+fi
+if [[ -z "$XCODE_VERSION_MINOR" ]]  
+then
+    XCODE_VERSION_MINOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MINOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
+fi
+XCODE_MAJOR=$(($XCODE_VERSION_MAJOR / 100))
+XCODE_MINOR=$(($XCODE_VERSION_MINOR / 10))
+XCODE_MINOR=$(($XCODE_MINOR % 10))
+echo "XCODE_MAJOR=$XCODE_MAJOR"
+echo "XCODE_MINOR=$XCODE_MINOR"
 if [ -z "$SRCROOT" ]
 if [ -z "$SRCROOT" ]
 then
 then
     SRCROOT=$(pwd)
     SRCROOT=$(pwd)
 fi
 fi
 
 
-if [ $XCODE_VERSION_MAJOR -lt 11 ]
+if [ $XCODE_MAJOR -lt 11 ]
 then
 then
     echo "Xcode 10 does not support xcframework. You can still use the individual framework for each platform."
     echo "Xcode 10 does not support xcframework. You can still use the individual framework for each platform."
     open -a Finder "${SRCROOT}/build/"
     open -a Finder "${SRCROOT}/build/"
@@ -22,12 +31,12 @@ fi
 mkdir -p "${SRCROOT}/build"
 mkdir -p "${SRCROOT}/build"
 PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
 PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
 
 
-if [ $XCODE_VERSION_MAJOR -ge 11 ]
+if [ $XCODE_MAJOR -ge 11 ]
 then
 then
     PLATFORMS+=("macCatalyst")
     PLATFORMS+=("macCatalyst")
 fi
 fi
 
 
-if [[ ($XCODE_VERSION_MAJOR -gt 15) || ($XCODE_VERSION_MAJOR -eq 15 && $XCODE_VERSION_MINOR -ge 2) ]]
+if [[ ($XCODE_MAJOR -gt 15) || ($XCODE_MAJOR -eq 15 && $XCODE_MINOR -ge 2) ]]
 then
 then
     PLATFORMS+=("visionOS")
     PLATFORMS+=("visionOS")
     PLATFORMS+=("visionOSSimulator")
     PLATFORMS+=("visionOSSimulator")