Ви, безумовно, на правильному шляху щодо файлу .xcscheme - у мене ця проблема з’явилася під час налаштування власних проектів!
Що стосується нащадків чи, принаймні, когось, хто потрапляє сюди з пошуку, ось дві версії речей - версія "Я зайнята, тому просто факти, будь ласка", версія та більше обговорення та обґрунтування. Обидві ці версії передбачають, що ви намагаєтеся створити з файлу Workspace; якщо ви цього не зробите, вибачте, оскільки це в основному стосується проектів на основі робочої області.
Скорочена версія "Fix-it"
Першопричиною є те, що поведінка схем за замовчуванням полягає у збереженні схем «приватними», поки вони не будуть позначені спеціально як спільні. У випадку ініційованої збірки командного рядка інтерфейс Xcode ніколи не запускається, а інструмент xcoderun не має власного кешу схем, з яким можна працювати. Мета полягає в створенні, спільному використанні та здійсненні схеми, з якої потрібно запустити Bamboo:
- На чистій робочій копії коду відкрийте робочу область проекту.
- Виберіть «Схема»> «Керування схемами ...» у меню продукту.
- З'являється список схем, визначених для проекту.
- Знайдіть схему, яку намагається запустити бамбук
- Переконайтесь, що прапорець "Спільний" встановлено для цієї схеми, і що параметр "Контейнер" встановлено на робочу область, а не на файл файлу проекту.
- Натисніть "ОК", щоб відхилити аркуш "Керувати схемами".
- У вашому проекті на WorkspaceName.xcworkspace / xcshareddata / xcschemes створено новий .xcscheme файл.
- Закладіть цей файл у своє сховище та запустіть збірку Bamboo.
Поглиблене обговорення та обґрунтування
Xcode 4 представив робочі простори та схеми як спосіб допомогти спробувати приручити частину хаосу, який притаманний роботі з механікою підключення проектів Xcode, будувати цілі та створювати конфігурації разом. Сам робочий простір має власний набір даних конфігурації, який описує кожну з менших «коробок» даних, які він містить, і виступає скелетом для приєднання файлів .xcodeproj та набором даних загальної конфігурації, які отримують дзеркальне відображення до кожної машини розробника чи системи CI . Це і потужність, і помилка Workspaces - є 1) безліч способів, за допомогою яких можна налаштувати речі на 100% правильно, але помістити в неправильний контейнер або 2) помістити в правильний контейнер, але налаштовано неправильно, таким чином рендеринга даних недоступний для інших частин системи!
Поводження схем Xcode 4 за замовчуванням полягає в автоматичному генеруванні нових схем, оскільки проекти додаються у файл Workspace. Ті з вас, хто додав кілька файлів .xcodeproj, можливо, помітили, що ваш список схем швидко стає нерозумним, особливо, коли файли проектів додаються, потім видаляються та знову переносяться на ту саму робочу область. Усі схеми, створені в автоматичному режимі або створені вручну, за замовчуванням є "приватними" схемами, видимими лише для поточного користувача, навіть коли файли .xcuserdata передаються з даними проекту та конфігурацією. Це є першопричиною цієї криптичної помилки збірки. Bamboo повідомляє з xcodebuild - Оскільки Bamboo управляє збіркою через командний рядок, а не інтерфейс Xcode, у нього немає можливості для автоматичного створення схем і покладається лише на ті, що визначаються в самому робочому просторі.
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyApplication -configuration Debug
xcodebuild шукає файл <'схема' Значення параметра> .xcscheme, що існує в <'робочому просторі' Значення параметра> / xcshareddata / xcschemes.
Очевидно, є групи способів, за якими можна налаштувати як Bamboo, так і робочу область, тому майте на увазі, що ваша унікальна конфігурація може не відображати на 100% те, що представлено тут. Основні вивіски:
- Деякі автоматизовані завдання, про які магічно дбає інтерфейс Xcode, недоступні через CLI Xcodebuild.
- Ви можете приєднати схему та побудувати дані конфігурації у багатьох місцях "ієрархії контейнерів". Переконайтеся, що ваші дані звиваються у потрібному контейнері (робоча область, проект та / або ціль збирання)
- Поміркуйте, де в ієрархії контейнерів інструмент xcodebuild може шукати дані конфігурації; чудовий показник того, куди він почне шукати, ґрунтується на використанні аргументів '-workspace' або '-project'.
Поле "Спільне" вже встановлено ... тепер що?
Я стикався з цим самим питанням у власному екземплярі Bamboo; виявилося, що схема, яку було зроблено в моєму сховищі, застаріла, і остання версія інструментів командного рядка не спрацювала з цим витончено. Оскільки це існувало раніше, я ознайомився з налаштуваннями, щоб переконатися, що в цій схемі не було нічого яскраво налаштованого, видалив та відтворив схему, гарантувавши, що я позначив її як "Спільна" та повторно подав новий .xcscheme файл сховище.
Якщо все виглядає добре, і відновлення цього не вирішує проблему, двічі перевірте налаштування контейнера - отримати схему, прикріплену до неправильного контейнера в ієрархії, дуже просто!