Есть несколько причин, по которым вы видите эту ошибку, но она сводится к зависимостям. Если вы выберете схему, которая создает цель iOS, у вас не возникнет проблем с использованием следующей команды. Обратите внимание, что я использовал iphoneos
для автоматического выбора последней версии SDK.
xcodebuild -configuration Release -target "ios" -sdk iphoneos -scheme "ios" build
Проблема, с которой вы столкнулись, вызвана зависимостью от расширения watchOS. Я создал пример проекта и добавил приложение watchOS. На вкладке этапов сборки в разделе Зависимости вы видите, что цель iOS имеет зависимость от цели WatchOS.
Это не проблема, если вы укажете destination
в команде сборки. Но это создает проблему, если вы указываете xcodebuild
для сборки с определенным SDK. Почему? Поскольку цель WatchOS не может быть собрана с помощью iOS SDK. Если вы укажете iphoneos
в качестве SDK, сборка завершится ошибкой.
Указание места назначения решает проблему, но знайте, что вы используете конкретный симулятор. Если вы используете ту же команду на другом компьютере, а этот симулятор недоступен, сборка завершится ошибкой.
Честно говоря, я не знаю, есть ли промежуточный вариант, позволяющий выбрать последнюю версию SDK и по-прежнему использовать правильный SDK для каждой цели, независимо от зависимостей. Если вы удалите зависимость цели iOS, приведенная выше команда сборки не должна завершаться ошибкой. Вам также может понадобиться обновить схему, которую вы используете.
person
Bart Jacobs
schedule
11.12.2015