#swift #xcode #xcodebuild #codesign #xcarchive
Вопрос:
Я пытаюсь написать сценарий сборки для своего приложения, который должен использовать Sparkle для уведомления пользователей о доступных обновлениях. Сам Sparkle распространяется как XCFramework, который я добавил в свой проект с помощью диспетчера пакетов Swift.
При запуске
xcodebuild archive
(наряду с несколькими параметрами, такими как определенная схема, ничего необычного) сборка завершается неудачно, потому что не удалось выполнить сценарий предварительной сборки. Причина в том, что ни один из компонентов Sparkle не может быть найден в папке BuildProductsPath/Releases/AppName.app во время следующей фазы запуска сценария:
LOCATION="${BUILT_PRODUCTS_DIR}"
codesign --verbose --timestamp --force --deep -o runtime --sign "${CODE_SIGN_IDENTITY}" "$LOCATION/${WRAPPER_NAME}/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/AutoUpdate.app"
codesign --verbose --timestamp --force -o runtime --sign "${CODE_SIGN_IDENTITY}" "$LOCATION/${WRAPPER_NAME}/Contents/Frameworks/Sparkle.framework/Versions/A"
При исследовании каталога действительно нет фреймворка, содержащегося в самом каталоге *.app; Вместо этого фреймворк находится в том же каталоге, что и сам каталог *.app.
Однако подписание фреймворка именно в этом месте на этапе запуска сценария не приведет к созданию подписанного двоичного файла в экспортируемом архиве, что необходимо для нотариального заверения моего приложения.
Я застрял на этом уже несколько дней. Что не так с моей фазой запуска сценария?