Merge pull request 'fix(ci/cd): build tf env' (#360) from mso7nueh/eatvio_app:main into main

Reviewed-on: eatvio/eatvio_app#360
This commit is contained in:
mso7nueh
2025-04-21 15:56:44 +00:00

View File

@@ -1,30 +1,80 @@
#!/usr/bin/env bash
IDENTITY="Apple Distribution: ITVIO, OOO (VL68C36HYS)"
P12_TMP_PATH="certs/distribution.p12"
#!/bin/bash
echo "🔑 Decoding certificate..."
echo "$CERTIFICATES_FILE_BASE64" | base64 --decode > "$P12_TMP_PATH"
ls -l "$P12_TMP_PATH" # Проверим размер и существование файла
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."
# Убедимся, что переменные 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
#