Skip to content

Commit 4bdb694

Browse files
committed
added build scripts
1 parent b18ffee commit 4bdb694

2 files changed

Lines changed: 93 additions & 11 deletions

File tree

build.sh

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,48 @@
11
#!/bin/sh
22

3-
NAME="OBTableViewController"
43

5-
IOS_ARCHIVE_PATH="./build/archive/ios.xcarchive"
6-
IOS_SIMULATOR_ARCHIVE_PATH="./build/archive/ios_simulator.xcarchive"
4+
NAME=OBTableViewController
5+
PROJECT=$NAME.xcodeproj
6+
SCHEME=$NAME
7+
SIMULATOR_NAME="iPhone 16 Pro"
78

8-
echo "Build"
9-
xcodebuild archive -scheme ${NAME} -archivePath ${IOS_ARCHIVE_PATH} -sdk iphoneos SKIP_INSTALL=NO -destination 'generic/platform=iOS'
10-
xcodebuild archive -scheme ${NAME} -archivePath ${IOS_SIMULATOR_ARCHIVE_PATH} -sdk iphonesimulator SKIP_INSTALL=NO -destination 'generic/platform=iOS Simulator'
9+
build() {
1110

11+
xcodebuild build-for-testing -scheme $SCHEME -configuration Debug \
12+
-UseNewBuildSystem=YES \
13+
-derivedDataPath ./build -disable-concurrent-destination-testing \
14+
-destination platform="iOS Simulator,name=$SIMULATOR_NAME" \
15+
-parallel-testing-enabled NO \
16+
-enableAddressSanitizer NO -enableThreadSanitizer NO -enableUndefinedBehaviorSanitizer NO \
17+
-enableCodeCoverage NO COMPILER_INDEX_STORE_ENABLE=NO \
18+
-skipMacroValidation \
19+
ARCH=arm64 \
20+
CODE_SIGN_IDENTITY= \
21+
CODE_SIGNING_REQUIRED=NO \
22+
CODE_SIGNING_ALLOWED=NO | xcbeautify -qq --disable-colored-output
23+
}
1224

13-
echo "Create xcframework"
14-
xcodebuild -create-xcframework \
15-
-framework ${IOS_ARCHIVE_PATH}/Products/Library/Frameworks/${NAME}.framework \
16-
-framework ${IOS_SIMULATOR_ARCHIVE_PATH}/Products/Library/Frameworks/${NAME}.framework \
17-
-output "./build/${NAME}.xcframework"
1825

26+
unitTest() {
27+
xcodebuild test-without-building -scheme $SCHEME -configuration Debug \
28+
-UseNewBuildSystem=YES \
29+
-derivedDataPath ./build -disable-concurrent-destination-testing \
30+
-destination platform="iOS Simulator,name=$SIMULATOR_NAME" \
31+
-parallel-testing-enabled NO \
32+
-enableAddressSanitizer NO -enableThreadSanitizer NO -enableUndefinedBehaviorSanitizer NO \
33+
-enableCodeCoverage NO COMPILER_INDEX_STORE_ENABLE=NO \
34+
-collect-test-diagnostics never \
35+
-skipMacroValidation \
36+
ARCH=arm64 \
37+
$ONLY_TEST | xcbeautify --disable-colored-output
1938

39+
}
40+
41+
build
42+
43+
if [ $? != 0 ]; then
44+
echo "Build failed"
45+
exit 1
46+
fi
47+
48+
unitTest

create-xcframework.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/sh
2+
3+
ARCHIVE_DIRECTORY=build/archive
4+
5+
if [ $# -ne 1 ]
6+
then
7+
echo "Version is missing"
8+
exit
9+
fi
10+
11+
VERSION=$1
12+
NAME=OBTableViewController
13+
PROJECT=$NAME.xcodeproj
14+
15+
16+
build() {
17+
local FRAMEWORK_NAME=$1
18+
19+
echo "Building $FRAMEWORK_NAME"
20+
21+
xcodebuild archive \
22+
-project $PROJECT \
23+
-scheme $FRAMEWORK_NAME \
24+
-destination "generic/platform=iOS" \
25+
-archivePath "$ARCHIVE_DIRECTORY/$FRAMEWORK_NAME-iOS" \
26+
SKIP_INSTALL=NO \
27+
BUILD_LIBRARY_FOR_DISTRIBUTION=YES | xcbeautify --disable-colored-output
28+
29+
xcodebuild archive \
30+
-project $PROJECT \
31+
-scheme $FRAMEWORK_NAME \
32+
-destination "generic/platform=iOS Simulator" \
33+
-archivePath "$ARCHIVE_DIRECTORY/$FRAMEWORK_NAME-iOS_Simulator" \
34+
SKIP_INSTALL=NO \
35+
BUILD_LIBRARY_FOR_DISTRIBUTION=YES | xcbeautify --disable-colored-output
36+
37+
xcodebuild -create-xcframework \
38+
-archive $ARCHIVE_DIRECTORY/${FRAMEWORK_NAME}-iOS.xcarchive -framework ${FRAMEWORK_NAME}.framework \
39+
-archive $ARCHIVE_DIRECTORY/${FRAMEWORK_NAME}-iOS_Simulator.xcarchive -framework ${FRAMEWORK_NAME}.framework \
40+
-output $ARCHIVE_DIRECTORY/${FRAMEWORK_NAME}.xcframework
41+
}
42+
43+
build $NAME
44+
45+
mkdir build/xcframework
46+
47+
48+
cp LICENSE $ARCHIVE_DIRECTORY
49+
mkdir build/xcframework
50+
51+
cd $ARCHIVE_DIRECTORY
52+
53+
zip -r ../xcframework/$NAME-$VERSION.zip $NAME.xcframework LICENSE

0 commit comments

Comments
 (0)