Устранение неполадок со сборкой iOS
Важно!
Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.
Узнайте больше о сроках поддержки и альтернативных вариантах.
Схема Xcode не найдена
Для создания xcworkspace
или xcproject
требуется общая схема Xcode. Схемы Xcode сохраняются локально, поэтому Xcode может получить к ним доступ. По умолчанию схемы не используются совместно с другими пользователями и не включаются в систему управления версиями.
Чтобы предоставить общий доступ к схеме в Xcode, выполните следующие действия.
- Выберите Схема > продукта > Управление схемами.
- Задайте схему для xcproject/xcworkspace как общую.
- Контейнер схемы должен иметь проект Xcode или рабочую область, которую вы хотите создать.
- Добавьте файл в
.xcscheme
систему управления версиями и отправьте в удаленный репозиторий, чтобы центр приложений смог получить к нему доступ.
Предупреждение
Убедитесь, что папки xcshareddata/xcschemes/
нет в .gitignore
файле. Здесь .xcscheme
файлы хранятся в Xcode. Центр приложений использует эти файлы для правильной сборки проекта. Просто экспортировать в .xcscheme
другую папку не удастся.
Мои сборки iOS завершаются с ошибкой clang: error: компоновщик не удалось выполнить команду с кодом выхода 1.
Ошибка может быть вызвана созданием центра приложений с xcodeproj вместо рабочей области. При добавлении CocoaPods в проект переключитесь на использование рабочей области при сборке в Центре приложений.
Индикатор. Найдите эту строку в журнале сборки:
ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** ARCHIVE FAILED **
Чтобы устранить эту ошибку, откройте конфигурацию сборки проекта и нажмите кнопку Сохранить. Центр приложений автоматически выберет рабочую область для будущих сборок.
Описание проблем с подписыванием iOS
Примечание
Подписывание удостоверений, которые используют символы, отличные от ascii, не поддерживаются в сборке.
Работа с профилями и сертификатами подготовки может оказаться сложной задачей. Следующие советы помогут вам успешно подписать приложения iOS.
Сохраните конфигурацию сборки в Центре приложений после отправки изменений подписывания в проект. В Центре приложений в конфигурации сборки любой ветви хранятся два значения проекта Xcode:
CODE_SIGN_STYLE
иDEVELOPMENT_TEAM
(заданныеproject.pbxproj
в файле в папке.xcodeproj
). Всякий раз, когда вы переключаетесь между ручным и автоматическим подписыванием или переключаете группу разработчиков, сохраняйте конфигурацию сборки в Центре приложений после отправки изменений. Если вы не сохраните после отправки, сборка может завершиться ошибкой подписывания.Перетащите правильный профиль подготовки при использовании автоматического подписывания. В Xcode на вкладке Общие целевого объекта в разделе Подписывание щелкните значок сведений рядом с пунктом Управляемый профиль Xcode. После этого вы увидите всплывающее окно со сведениями профиля. Щелкните и перетащите значок PROV в левом верхнем углу в нужное место (как показано ниже).
Обратите внимание на поддерживаемые в настоящее время параметры Центра приложений при использовании ручного и автоматического подписывания. Центр приложений полностью поддерживает подписывание приложений iOS вручную, поэтому вы можете использовать любой тип профиля или сертификата. Убедитесь, что профиль подготовки и сертификат, отправляемые в Центр приложений, соответствуют указанным в проекте. Если вы включили автоматическое управление входом в Xcode, Центр приложений поддерживает подписывание приложений с помощью сертификатов и профилей разработчика (не с распространением). При отправке в Центр приложений необходимо использовать автоматически созданный профиль подготовки из Xcode.
По-прежнему возникают проблемы?
Чтобы устранить неполадки и выполнить регистрацию сборки, мы рекомендуем выполнить следующие действия.
- Настройте вход вручную в проекте Xcode и убедитесь, что он работает локально.
- После проверки зафиксируйте изменения и отправьте их в репозиторий.
- Подготовьте профиль подготовки и сертификат, выбранные в целевом объекте Xcode, и отправьте их в конфигурацию сборки Центра приложений.
- Самое главное: перед сохранением нового сертификата и профиля в конфигурацию сборки убедитесь, что вы выполнили отправку последнего состояния проекта.
Где находится IPA-файл?
Xcodebuild, в отличие от xcrun, не позволяет создавать .ipa
файл, если сборка не подписана. Вместо этого неподписанные сборки создают .xcarchive
. Если вы хотите создать .ipa
файл с артефактами неподписаемой сборки, для этого можно использовать .xcarchive
этот файл.
Мое приложение iOS, использующий Xcode, завершается сбоем с ошибкой "Недопустимая версия битового кода"
Если сборки завершаются сбоем , error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0')
вы используете библиотеку или модуль pod, созданные более новой версией Xcode, чем проект. Вы можете обновить проект и конфигурацию сборки в Центре приложений, чтобы использовать более новую версию Xcode, или переключиться на альтернативную версию проблемной библиотеки, которая компилируется с соответствующей версией Xcode.
Приложению iOS не удается выполнить тест
Чаще всего тесты завершаются сбоем, когда команды компоновщика завершаются ошибкой, аналогичной следующей:
ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks
❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)
Вероятная причина этой ошибки заключается в том, что тип компоновки Компоновщика Apple Mach-O не имеет статической библиотеки. Чтобы успешно выполнить сборку и тестирование приложения, убедитесь, что для типа связывания Компоновщика Apple Mach-O в целевом объекте тестированиязадана статическая библиотека.
Мои сборки iOS, использующие CocoaPods в Xcode 9, продолжают завершать сбои, что делать?
Это может быть связано с тем, что конфигурация подписывания в проекте Pods отличается от конфигурации в основном проекте. Возвращены ли объекты Pod в репозиторий? Если это так, ваш проект Pod должен использовать тот же метод подписывания, что и основной проект.
Если модули Pod не возвращены, могут возникнуть различные проблемы. Существует несколько обходных решений, которые можно использовать в этой проблеме GitHub для сценариев, предшествующих сборке.
Так как я обновил проект до бета-версии Xcode 10, мое приложение не выполняет сборку с ошибкой Цикл в зависимости между целевыми объектами
Новая система сборки Xcode 10 обнаруживает циклы зависимостей в сборке и завершает сборку сбоем, если таковые имеются.
Дополнительные сведения о том, как исправить сборку, см. в документации Apple по разрешению распространенных типов циклов зависимостей.