#!/usr/bin/env bash set -xeu set -o pipefail export LANG=en_US.UTF-8 LANG=en_US.UTF-8 function finish() { if [[ -d "${RESULT_BUNDLE_PATH}" ]]; then ditto -c -k --sequesterRsrc --keepParent "${RESULT_BUNDLE_PATH}" "${RESULT_BUNDLE_PATH}.zip" rm -rf "${RESULT_BUNDLE_PATH}" fi } trap finish EXIT SDK="${SDK:-iphoneos}" WORKSPACE="${WORKSPACE:-ios/Runner.xcworkspace}" SCHEME="${SCHEME:-Runner}" CONFIGURATION="${CONFIGURATION:-Release}" BUILD_DIR="${BUILD_DIR:-build}" ARTIFACT_PATH="${RESULT_PATH:-${BUILD_DIR}/Artifacts}" RESULT_BUNDLE_PATH="${ARTIFACT_PATH}/${SCHEME}.xcresult" ARCHIVE_PATH="${ARCHIVE_PATH:-${BUILD_DIR}/Archives/${SCHEME}.xcarchive}" DERIVED_DATA_PATH="${DERIVED_DATA_PATH:-${BUILD_DIR}/DerivedData}" CURRENT_PROJECT_VERSION="${BUILD_NUMBER:-0}" EXPORT_OPTIONS_FILE="Support/ExportOptions.plist" # Clean and prepare the build flutter clean flutter pub get dart run build_runner build --delete-conflicting-outputs cd ios rm -rf Pods Podfile.lock pod install --repo-update pod update || { echo "Pod update failed"; exit 1; } cd .. rm -rf "${RESULT_BUNDLE_PATH}" "${DERIVED_DATA_PATH}" mkdir -p "${ARTIFACT_PATH}" codesign --remove-signature "${ARCHIVE_PATH}/Products/Applications/Runner.app/Frameworks/App.framework/App" codesign --remove-signature "${ARCHIVE_PATH}/Products/Applications/Runner.app/Frameworks/Flutter.framework/Flutter" codesign -f -s "Apple Distribution: ITVIO, OOO (VL68C36HYS)" --preserve-metadata=entitlements,identifier,flags \ "${ARCHIVE_PATH}/Products/Applications/Runner.app/Frameworks/App.framework/App" codesign -f -s "Apple Distribution: ITVIO, OOO (VL68C36HYS)" --preserve-metadata=entitlements,identifier,flags \ "${ARCHIVE_PATH}/Products/Applications/Runner.app/Frameworks/Flutter.framework/Flutter" ## Archive the build #xcrun xcodebuild \ # -workspace "${WORKSPACE}" \ # -scheme "${SCHEME}" \ # -configuration "${CONFIGURATION}" \ # -sdk "${SDK}" \ # -parallelizeTargets \ # -showBuildTimingSummary \ # -derivedDataPath "${DERIVED_DATA_PATH}" \ # -archivePath "${ARCHIVE_PATH}" \ # -resultBundlePath "${RESULT_BUNDLE_PATH}" \ # -allowProvisioningUpdates \ # CURRENT_PROJECT_VERSION="${CURRENT_PROJECT_VERSION}" \ # CODE_SIGNING_ALLOWED=NO \ # DEVELOPMENT_TEAM=VL68C36HYS \ # archive || { echo "Xcode archive failed"; exit 1; } # ## Export the build to .ipa #xcrun xcodebuild \ # -exportArchive \ # -exportOptionsPlist "${EXPORT_OPTIONS_FILE}" \ # -archivePath "${ARCHIVE_PATH}" \ # -exportPath "${ARTIFACT_PATH}/${SCHEME}.ipa" || { echo "Export to IPA failed"; exit 1; } # ## Zip the archive #if [[ -d "${ARCHIVE_PATH}" ]]; then # ditto -c -k --sequesterRsrc --keepParent "${ARCHIVE_PATH}" "${ARTIFACT_PATH}/${SCHEME}.xcarchive.zip" #else # echo "Archive directory not found, skipping zip." #fi