60 lines
1.8 KiB
Bash
60 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# ---------------------------------------------------------------
|
|
# build_xc_framework.sh
|
|
# Build NewHttpDNS.xcframework (device + simulator)
|
|
# Usage: sh build_xc_framework.sh
|
|
# ---------------------------------------------------------------
|
|
set -euo pipefail
|
|
|
|
SCHEME="NewHttpDNS"
|
|
PROJECT="NewHttpDNS.xcodeproj"
|
|
CONFIGURATION="Release"
|
|
FRAMEWORK_NAME="NewHttpDNS"
|
|
BUILD_DIR="$(pwd)/Build"
|
|
|
|
ARCHIVE_IOS="${BUILD_DIR}/ios.xcarchive"
|
|
ARCHIVE_SIM="${BUILD_DIR}/ios-simulator.xcarchive"
|
|
OUTPUT_XCF="${BUILD_DIR}/${FRAMEWORK_NAME}.xcframework"
|
|
|
|
echo "==> Cleaning old build artifacts..."
|
|
rm -rf "${BUILD_DIR}"
|
|
mkdir -p "${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 "=========================================="
|