|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd -P)" |
| 6 | +PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" |
| 7 | + |
| 8 | +PROJECT_BUILD_DIR="${PROJECT_BUILD_DIR:-"${PROJECT_ROOT}/build"}" |
| 9 | +XCODEBUILD_BUILD_DIR="$PROJECT_BUILD_DIR/xcodebuild" |
| 10 | +XCODEBUILD_DERIVED_DATA_PATH="$XCODEBUILD_BUILD_DIR/DerivedData" |
| 11 | + |
| 12 | +build_framework() { |
| 13 | + local sdk="$1" |
| 14 | + local destination="$2" |
| 15 | + local scheme="$3" |
| 16 | + |
| 17 | + local XCODEBUILD_ARCHIVE_PATH="./$scheme-$sdk.xcarchive" |
| 18 | + |
| 19 | + rm -rf "$XCODEBUILD_ARCHIVE_PATH" |
| 20 | + |
| 21 | + xcodebuild archive \ |
| 22 | + -scheme "$scheme" \ |
| 23 | + -archivePath "$XCODEBUILD_ARCHIVE_PATH" \ |
| 24 | + -derivedDataPath "$XCODEBUILD_DERIVED_DATA_PATH" \ |
| 25 | + -sdk "$sdk" \ |
| 26 | + -destination "$destination" \ |
| 27 | + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ |
| 28 | + INSTALL_PATH='Library/Frameworks' \ |
| 29 | + OTHER_SWIFT_FLAGS=-no-verify-emitted-module-interface \ |
| 30 | + LD_GENERATE_MAP_FILE=YES |
| 31 | + |
| 32 | + FRAMEWORK_MODULES_PATH="$XCODEBUILD_ARCHIVE_PATH/Products/Library/Frameworks/$scheme.framework/Modules" |
| 33 | + mkdir -p "$FRAMEWORK_MODULES_PATH" |
| 34 | + cp -r \ |
| 35 | + "$XCODEBUILD_DERIVED_DATA_PATH/Build/Intermediates.noindex/ArchiveIntermediates/$scheme/BuildProductsPath/Release-$sdk/$scheme.swiftmodule" \ |
| 36 | + "$FRAMEWORK_MODULES_PATH/$scheme.swiftmodule" |
| 37 | + # Delete private swiftinterface |
| 38 | + rm -f "$FRAMEWORK_MODULES_PATH/$scheme.swiftmodule/*.private.swiftinterface" |
| 39 | + mkdir -p "$scheme-$sdk.xcarchive/LinkMaps" |
| 40 | + find "$XCODEBUILD_DERIVED_DATA_PATH" -name "$scheme-LinkMap-*.txt" -exec cp {} "./$scheme-$sdk.xcarchive/LinkMaps/" \; |
| 41 | +} |
| 42 | + |
| 43 | +# Update the Package.swift to build the library as dynamic instead of static |
| 44 | +sed -i '' 's/type: \.static/type: .dynamic/g' Package.swift |
| 45 | + |
| 46 | +build_framework "iphoneos" "generic/platform=iOS" "OpenAI" |
| 47 | +build_framework "iphonesimulator" "generic/platform=iOS Simulator" "OpenAI" |
| 48 | + |
| 49 | +echo "Builds completed successfully." |
| 50 | + |
| 51 | +rm -rf "OpenAI.xcframework" |
| 52 | +xcodebuild -create-xcframework -framework OpenAI-iphonesimulator.xcarchive/Products/Library/Frameworks/OpenAI.framework -framework OpenAI-iphoneos.xcarchive/Products/Library/Frameworks/OpenAI.framework -output OpenAI.xcframework |
| 53 | + |
| 54 | +cp -r OpenAI-iphoneos.xcarchive/dSYMs OpenAI.xcframework/ios-arm64 |
| 55 | +cp -r OpenAI-iphonesimulator.xcarchive/dSYMs OpenAI.xcframework/ios-arm64_x86_64-simulator |
0 commit comments