Skip to content

Commit 69aa3bd

Browse files
committed
ci: update the script for better detection of running xcode version
1 parent bc58a9a commit 69aa3bd

File tree

3 files changed

+36
-15
lines changed

3 files changed

+36
-15
lines changed

.github/workflows/CD.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
LC_ALL: en_US.UTF-8
1818
CODESIGN_KEY_BASE64: "${{ secrets.CODESIGN_KEY_BASE64 }}"
1919
DEVELOPER_DIR: /Applications/Xcode_16.0.app
20+
XCODE_VERSION_MAJOR: 1600
21+
XCODE_VERSION_MINOR: 1600
2022
strategy:
2123
fail-fast: true
2224
matrix:
@@ -33,13 +35,15 @@ jobs:
3335
- name: Build XCFramework
3436
run: |
3537
set -o pipefail
38+
set -x
3639
export MACH_O_TYPE="${{ matrix.MACH_O_TYPE }}"
3740
./Scripts/build-frameworks.sh
3841
rm -rf ~/Library/Developer/Xcode/DerivedData/
3942
4043
- name: Create XCFramework
4144
run: |
4245
set -o pipefail
46+
set -x
4347
export MACH_O_TYPE="${{ matrix.MACH_O_TYPE }}"
4448
./Scripts/create-xcframework.sh
4549
./Scripts/sign-xcframework.sh

Scripts/build-frameworks.sh

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
11
#!/bin/bash
22

33
set -e
4-
set -x
54
set -o pipefail
65

7-
XCODE_VERSION=$(xcodebuild -version | head -n 1| awk -F ' ' '{print $2}')
8-
XCODE_VERSION_MAJOR=$(echo $XCODE_VERSION | awk -F '.' '{print $1}')
9-
XCODE_VERSION_MINOR=$(echo $XCODE_VERSION | awk -F '.' '{print $2}')
10-
XCODE_VERSION_PATCH=$(echo $XCODE_VERSION | awk -F '.' '{print $3}')
11-
if [ -z "$SRCROOT" ]
6+
if [[ -z "$XCODE_VERSION_MAJOR" ]]
7+
then
8+
XCODE_VERSION_MAJOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MAJOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
9+
fi
10+
if [[ -z "$XCODE_VERSION_MINOR" ]]
11+
then
12+
XCODE_VERSION_MINOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MINOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
13+
fi
14+
XCODE_MAJOR=$(($XCODE_VERSION_MAJOR / 100))
15+
XCODE_MINOR=$(($XCODE_VERSION_MINOR / 10))
16+
XCODE_MINOR=$(($XCODE_MINOR % 10))
17+
echo "XCODE_MAJOR=$XCODE_MAJOR"
18+
echo "XCODE_MINOR=$XCODE_MINOR"
19+
if [[ -z "$SRCROOT" ]]
1220
then
1321
SRCROOT=$(pwd)
1422
fi
1523

1624
mkdir -p "${SRCROOT}/build"
1725
PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
1826

19-
if [ $XCODE_VERSION_MAJOR -ge 11 ]
27+
if [ $XCODE_MAJOR -ge 11 ]
2028
then
2129
PLATFORMS+=("macCatalyst")
2230
fi
2331

24-
if [[ ($XCODE_VERSION_MAJOR -gt 15) || ($XCODE_VERSION_MAJOR -eq 15 && $XCODE_VERSION_MINOR -ge 2) ]]
32+
if [[ ($XCODE_MAJOR -gt 15) || ($XCODE_MAJOR -eq 15 && $XCODE_MINOR -ge 2) ]]
2533
then
2634
PLATFORMS+=("visionOS")
2735
PLATFORMS+=("visionOSSimulator")

Scripts/create-xcframework.sh

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,25 @@
33
set -e
44
set -o pipefail
55

6-
XCODE_VERSION=$(xcodebuild -version | head -n 1| awk -F ' ' '{print $2}')
7-
XCODE_VERSION_MAJOR=$(echo $XCODE_VERSION | awk -F '.' '{print $1}')
8-
XCODE_VERSION_MINOR=$(echo $XCODE_VERSION | awk -F '.' '{print $2}')
9-
XCODE_VERSION_PATCH=$(echo $XCODE_VERSION | awk -F '.' '{print $3}')
6+
if [[ -z "$XCODE_VERSION_MAJOR" ]]
7+
then
8+
XCODE_VERSION_MAJOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MAJOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
9+
fi
10+
if [[ -z "$XCODE_VERSION_MINOR" ]]
11+
then
12+
XCODE_VERSION_MINOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MINOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
13+
fi
14+
XCODE_MAJOR=$(($XCODE_VERSION_MAJOR / 100))
15+
XCODE_MINOR=$(($XCODE_VERSION_MINOR / 10))
16+
XCODE_MINOR=$(($XCODE_MINOR % 10))
17+
echo "XCODE_MAJOR=$XCODE_MAJOR"
18+
echo "XCODE_MINOR=$XCODE_MINOR"
1019
if [ -z "$SRCROOT" ]
1120
then
1221
SRCROOT=$(pwd)
1322
fi
1423

15-
if [ $XCODE_VERSION_MAJOR -lt 11 ]
24+
if [ $XCODE_MAJOR -lt 11 ]
1625
then
1726
echo "Xcode 10 does not support xcframework. You can still use the individual framework for each platform."
1827
open -a Finder "${SRCROOT}/build/"
@@ -22,12 +31,12 @@ fi
2231
mkdir -p "${SRCROOT}/build"
2332
PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
2433

25-
if [ $XCODE_VERSION_MAJOR -ge 11 ]
34+
if [ $XCODE_MAJOR -ge 11 ]
2635
then
2736
PLATFORMS+=("macCatalyst")
2837
fi
2938

30-
if [[ ($XCODE_VERSION_MAJOR -gt 15) || ($XCODE_VERSION_MAJOR -eq 15 && $XCODE_VERSION_MINOR -ge 2) ]]
39+
if [[ ($XCODE_MAJOR -gt 15) || ($XCODE_MAJOR -eq 15 && $XCODE_MINOR -ge 2) ]]
3140
then
3241
PLATFORMS+=("visionOS")
3342
PLATFORMS+=("visionOSSimulator")

0 commit comments

Comments
 (0)