This commit is contained in:
robin
2026-03-05 02:44:43 +08:00
parent 49021c7415
commit 49776c3d0a
41 changed files with 432 additions and 297 deletions

View File

@@ -1,16 +1,59 @@
#!/bin/bash
# ---------------------------------------------------------------
# build_xc_framework.sh
# Build NewHttpDNS.xcframework (device + simulator)
# Usage: sh build_xc_framework.sh
# ---------------------------------------------------------------
set -euo pipefail
set -x
FRAMEWORK_ID="httpdns"
SCHEME="NewHttpDNS"
PROJECT="NewHttpDNS.xcodeproj"
CONFIGURATION="Release"
FRAMEWORK_NAME="NewHttpDNS"
BUILD_CONFIG="release"
BUILD_DIR="`pwd`/Build"
BUILD_DIR="$(pwd)/Build"
# remove and make Build directory
rm -rf Build && mkdir Build
ARCHIVE_IOS="${BUILD_DIR}/ios.xcarchive"
ARCHIVE_SIM="${BUILD_DIR}/ios-simulator.xcarchive"
OUTPUT_XCF="${BUILD_DIR}/${FRAMEWORK_NAME}.xcframework"
# clone git@gitlab.alibaba-inc.com:alicloud-ams/ios-xcframework-build-script.git to Build directory
git clone git@gitlab.alibaba-inc.com:alicloud-ams/ios-xcframework-build-script.git Build/ios-xcframework-build-script
echo "==> Cleaning old build artifacts..."
rm -rf "${BUILD_DIR}"
mkdir -p "${BUILD_DIR}"
sh Build/ios-xcframework-build-script/build.sh $FRAMEWORK_ID $FRAMEWORK_NAME $BUILD_CONFIG $BUILD_DIR
# ---- 1. Archive: iOS device (arm64) ----
echo "==> Archive: iOS device (arm64)..."
xcodebuild archive \
-project "${PROJECT}" \
-scheme "${SCHEME}" \
-configuration "${CONFIGURATION}" \
-destination "generic/platform=iOS" \
-archivePath "${ARCHIVE_IOS}" \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
ENABLE_MODULE_VERIFIER=NO \
| tail -1
# ---- 2. Archive: iOS Simulator (arm64 + x86_64) ----
echo "==> Archive: iOS Simulator (arm64 + x86_64)..."
xcodebuild archive \
-project "${PROJECT}" \
-scheme "${SCHEME}" \
-configuration "${CONFIGURATION}" \
-destination "generic/platform=iOS Simulator" \
-archivePath "${ARCHIVE_SIM}" \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
ENABLE_MODULE_VERIFIER=NO \
| tail -1
# ---- 3. Create XCFramework ----
echo "==> Creating XCFramework..."
xcodebuild -create-xcframework \
-framework "${ARCHIVE_IOS}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework" \
-framework "${ARCHIVE_SIM}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework" \
-output "${OUTPUT_XCF}"
echo ""
echo "=========================================="
echo " Done! Output: ${OUTPUT_XCF}"
echo "=========================================="