Files
eatvio_app/Build-tf
2025-04-21 18:56:26 +03:00

199 lines
7.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
#!/bin/bash
# Убедимся, что переменные CERTIFICATES_FILE_BASE64 и CERTIFICATES_PASSWORD установлены
if [ -z "$CERTIFICATES_FILE_BASE64" ] || [ -z "$CERTIFICATES_PASSWORD" ]; then
echo "❌ Переменные CERTIFICATES_FILE_BASE64 или CERTIFICATES_PASSWORD не установлены."
exit 1
fi
# Указываем путь для временного файла .p12
P12_TMP_PATH="./certs/distribution.p12"
# Создаем каталог, если его нет
echo "📦 Preparing certificate..."
mkdir -p certs
# Выводим первые 10 символов BASE64 строки для проверки
echo "🔍 Проверка содержимого base64 строки..."
echo "$CERTIFICATES_FILE_BASE64" | head -n 10
# Декодируем строку base64 и сохраняем в файл
echo "🔑 Decoding certificate..."
echo "$CERTIFICATES_FILE_BASE64" | base64 --decode > "$P12_TMP_PATH"
# Проверим, что файл был успешно создан
if [ ! -f "$P12_TMP_PATH" ]; then
echo "❌ Не удалось создать файл сертификата: $P12_TMP_PATH"
exit 1
else
echo "✅ Файл сертификата успешно создан: $P12_TMP_PATH"
ls -l "$P12_TMP_PATH" # Выведем информацию о файле
fi
# Попробуем импортировать сертификат
echo "🔑 Importing .p12 certificate..."
security import "$P12_TMP_PATH" -k login.keychain -P "$CERTIFICATES_PASSWORD" -T /usr/bin/codesign
# Проверим, был ли сертификат успешно импортирован
if [ $? -ne 0 ]; then
echo "❌ Ошибка при импорте сертификата. Проверьте правильность пароля."
exit 1
fi
echo "✅ Сертификат успешно импортирован."
# Проверим наличие нужной identity в ключнице
IDENTITY="Apple Distribution: ITVIO, OOO (VL68C36HYS)"
if ! security find-identity -v -p codesigning | grep -q "${IDENTITY}"; then
echo "❌ Подпись identity '${IDENTITY}' не найдена в ключнице."
exit 1
fi
# Определяем пути
ARCHIVE_PATH="./archive" # Убедитесь, что ARCHIVE_PATH правильно задан
APP_PATH="${ARCHIVE_PATH}/Products/Applications/Runner.app"
FRAMEWORKS_PATH="${APP_PATH}/Frameworks"
# Убираем старые подписи
echo "🔐 Removing old signatures..."
codesign --remove-signature "${FRAMEWORKS_PATH}/App.framework/App"
codesign --remove-signature "${FRAMEWORKS_PATH}/Flutter.framework/Flutter"
# Повторно подписываем фреймворки
echo "🔐 Resigning App.framework..."
codesign -f --deep --no-strict -s "${IDENTITY}" --preserve-metadata=entitlements,identifier,flags "${FRAMEWORKS_PATH}/App.framework/App"
echo "🔐 Resigning Flutter.framework..."
codesign -f --deep --no-strict -s "${IDENTITY}" --preserve-metadata=entitlements,identifier,flags "${FRAMEWORKS_PATH}/Flutter.framework/Flutter"
# Подписываем самое приложение
echo "🔐 Resigning Runner.app..."
codesign -f --deep --no-strict -s "${IDENTITY}" --preserve-metadata=entitlements,identifier,flags "${APP_PATH}"
echo "✅ Resigning completed."
#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}"
#
#function resign_frameworks() {
# IDENTITY="Apple Distribution: ITVIO, OOO (VL68C36HYS)"
# P12_TMP_PATH="certs/distribution.p12"
#
# echo "📦 Preparing certificate..."
# mkdir -p certs
# echo "$CERTIFICATES_FILE_BASE64" | base64 --decode > "$P12_TMP_PATH"
#
# echo "🔑 Importing .p12 certificate..."
# security import "$P12_TMP_PATH" -k login.keychain -P "$CERTIFICATES_PASSWORD" -T /usr/bin/codesign || {
# echo "❌ Failed to import .p12"
# exit 1
# }
#
# security set-key-partition-list -S apple-tool:,apple: -s -k "$CERTIFICATES_PASSWORD" login.keychain
#
# # 🧾 Проверка, что identity доступен
# if ! security find-identity -v -p codesigning | grep -q "${IDENTITY}"; then
# echo "❌ Signing identity '${IDENTITY}' not found in keychain."
# exit 1
# fi
#
# local app_path="${ARCHIVE_PATH}/Products/Applications/Runner.app"
# local frameworks_path="${app_path}/Frameworks"
#
# echo "🔐 Removing old signatures..."
# codesign --remove-signature "${frameworks_path}/App.framework/App"
# codesign --remove-signature "${frameworks_path}/Flutter.framework/Flutter"
#
# echo "🔐 Resigning App.framework..."
# codesign -f --deep --no-strict -s "${IDENTITY}" \
# --preserve-metadata=entitlements,identifier,flags \
# "${frameworks_path}/App.framework/App"
#
# echo "🔐 Resigning Flutter.framework..."
# codesign -f --deep --no-strict -s "${IDENTITY}" \
# --preserve-metadata=entitlements,identifier,flags \
# "${frameworks_path}/Flutter.framework/Flutter"
#
# echo "🔐 Resigning Runner.app..."
# codesign -f --deep --no-strict -s "${IDENTITY}" \
# --preserve-metadata=entitlements,identifier,flags \
# "${app_path}"
#
# echo "✅ Resigning completed"
#}
#
## 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; }
#
#resign_frameworks
#
## 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