Таргетам Swift Package требуется команда разработчика
Unity: Все версии | Платформа: iOS | Зависимости: Swift Package Manager
Описание проблемы
Архивация Xcode-проекта завершается ошибкой сразу после этапа очистки. На каждый Swift-пакет, который поставляет ресурсы, приходится своя ошибка:
error: Signing for "Firebase_FirebaseRemoteConfig" requires a development team.
Select a development team in the Signing & Capabilities editor.
(in target 'Firebase_FirebaseRemoteConfig' from project 'Firebase')
При обычной сборке Build & Run проблема не проявляется, поскольку ресурсные бандлы подписываются только во время архивации и экспорта.
Swift Package Manager создаёт отдельный Xcode-проект для каждого пакета. Внутри такого проекта
появляется таргет <ИмяПакета>_<ИмяТаргета> для каждого таргета с ресурсами. У этих таргетов нет
собственной команды разработчика, они наследуют её от основного проекта. Если в основном проекте
команда не задана, подпись завершается ошибкой.
Решение
Укажите команду разработчика в Unity: Project Settings → Player → iOS → Identification → Signing Team ID. Unity запишет её в экспортированный Xcode-проект, и таргеты Swift Package унаследуют это значение.
Unity Build Automation
Unity Build Automation удаляет эту настройку из экспортированного проекта и передаёт в
xcodebuild только идентификатор подписи, поэтому заполнение Team ID в Unity там не помогает.
Передайте команду разработчика через аргументы командной строки, используя собственный Gymfile:
xcargs("-UseModernBuildSystem=YES CODE_SIGN_STYLE=Manual DEVELOPMENT_TEAM=<TEAM_ID>")
Сохраните -UseModernBuildSystem=YES. Unity Build Automation передаёт этот флаг по умол чанию, а
объявление xcargs заменяет значение целиком.
Положите Gymfile рядом с файлом config.json:
{
"gymfile": "path/to/your/Gymfile"
}
После этого укажите путь к config.json в настройках: Build target → Edit → Edit Advanced Options →
Platform specific settings (iOS) → Custom Fastlane Configuration Path. Настройка задаётся отдельно
для каждой цели сборки, поэтому своя запись нужна каждой из них.
Unity знает о проблеме и описывает это решение как временное. См. Swift Packages and Automatic Signing.