Xcode 4: сборка не удалась, проблем нет

Приложение отлично работает в симуляторе, строит и запускает.

Когда я подключаю свое устройство (iPhone 3GS под управлением iOS 4.3) и нацеливаюсь на iPhone, появляется сообщение «Сбой сборки» и «Нет проблем».

В окне результатов сборки все зеленое, есть галочка, включая уведомление о сбое сборки.

Расширение стенограммы не показывает ошибок.

Я не могу исключить возможность ошибки подписи или обеспечения, но он дал мне эти ошибки, я их исправил, и теперь он не дает мне никаких ошибок или проблем, просто «Сборка не удалась; проблем нет»

  • Каким образом сборка может завершиться без проблем?
  • Есть ли способ посмотреть результаты сборки, чтобы узнать, смогу ли я найти причину сбоя без проблем?
  • Производится ли сборка помимо списка проблем?
  • Я не вижу в окне сборки, где оно пытается загрузить приложение на мое устройство - этот вывод где-то еще?

person Community    schedule 19.03.2011    source источник
comment
Это происходит со мной прямо сейчас! Так обидно!   -  person tallen11    schedule 14.05.2011
comment
Я думаю, что stackoverflow.com/a/28064945/1709587 обычно отображает какое-то сообщение об ошибке; это гораздо более полезно, чем различные предположения, включенные в другие ответы, и должно быть отправной точкой для любого, кто пытается отладить эту ситуацию. Вы бы согласились, чтобы он оказался в верхней части страницы?   -  person Mark Amery    schedule 08.12.2015


Ответы (44)


Я получаю сообщение «Build Failed» без ошибок в навигаторе проблем (только предупреждения). А вот навигатор отчетов правильно отображал ошибки.

person Community    schedule 21.01.2015
comment
Отлично, это показало мои ошибки. Теперь я могу перестать тратить зря время и решить ошибку :) - person Daniel Ryan; 04.05.2015
comment
Спас мой день !! Спасибо - person DZenBot; 04.06.2016
comment
Пришлось почистить DerivedData + отключить BitCode (на всякий случай). - person DevAndArtist; 01.09.2016

Используете ли вы «подчеркивание», «пробел» и т. Д. Для идентификатора пакета?

Вы используете .m вместо .h в одном из импортируемых файлов? #import "Photo.h"

person Community    schedule 24.03.2011
comment
Нет, в идентификаторе пакета я не использую ни пробел, ни подчеркивание. - person Adam Davis; 24.03.2011
comment
Спасибо! Для меня это было подчеркивание в идентификаторе Bundle. - person cocoapriest; 12.04.2011
comment
Спасибо! По какой-то причине идентификатор моего пакета был пустым. - person tallen11; 14.05.2011
comment
Спасибо. После удаления подчеркивания мой проект скомпилировался нормально. Я чувствую странную комбинацию ослепляющей ярости, облегчения и благодарности. КАК Я МОГУ БЫТЬ НАСТОЯЩИМ ДУРОКОМ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ПРОГРАММУ В НАЗВАНИИ ПРОЕКТА?!? - person Tina D.; 06.06.2011
comment
УХ ТЫ! У меня тоже была эта проблема. Подчеркнутый. Поменял на тире и все в порядке. Это абсолютно АБСУРДНОЕ ЯБЛОКО! Я люблю iOS. Я презираю запутанный процесс, который Apple использует для загрузки вашего приложения на устройство для тестирования. В любом случае, спасибо за это исправление! - person DA.; 26.06.2011

Первое, что я попробую, это очистить все (меню «Продукт» / «Очистить») и собрать заново. Возможно, вы уже пробовали это сделать.

Вы найдете (и можете наблюдать во время сборки) полный вывод сборки в Log Navigator. Это крайний правый значок из маленьких значков под кнопками «Выполнить» и «Сборка».

Файлы журнала сборки (и отладки) находятся в каталоге / Users / you / Library / Developer / XCode / DerviedData / YourProject-abcdefg / Logs / Build (и ../Debug соответственно).

Я не думаю, что есть выход для установки вашего приложения на устройство.

person Community    schedule 19.03.2011
comment
Да, уборка не помогает. Я использовал и просматривал выходные данные сборки в навигаторе журналов и в соответствующем журнале сеанса. Файлы журналов, которые вы указываете, кажутся двоичными, поэтому похоже, что единственный доступ к ним, который у меня есть, - это навигатор журналов и журнал сеанса. - person Adam Davis; 20.03.2011
comment
Что касается навигатора журналов, в моем случае у меня был журнал, который был в будущем (поскольку я изменил дату на компьютере на 1 день вперед для запуска некоторых тестов). Кажется, что xcode использует последний журнал (по дате сборки). Чтобы исправить это (в xcode 5), я удалил производную дату для проекта и перезапустил xcode, поэтому будущие журналы исчезли, а навигатор проблем начал показывать правильные предупреждения и ошибки. - person alex-i; 28.06.2014

Есть ли место в названии продукта вашей цели?

Я знаю, что в более ранних версиях Xcode это не было проблемой, но похоже, что они что-то сломали в Xcode 4, поэтому он больше не работает (я подозреваю, что это как-то связано с бессмыслицей пути DerivedData). Вы можете добавить пробел к имени вашего приложения, которое отображается на панели запуска вашего iDevice, установив для клавиши CFBundleDisplayName в Info.plist значение, отличное от ${PRODUCT_NAME}.

person Community    schedule 28.03.2011
comment
Нет, имя приложения состоит из одного слова, без специальных символов, пробелов или чего-либо еще. - person Adam Davis; 29.03.2011
comment
Это сделало это для меня. Чувак, Apple находит новые способы затруднить разработчикам переход на их платформу. Сногсшибательная ошибка. !! - person CF_Maintainer; 23.05.2011
comment
Вы также не можете использовать подчеркивание в названии продукта. - person afrederick; 05.06.2012

В одном из местных списков рассылки Cocoa Heads меня посоветовали попробовать создать небольшой образец проекта по умолчанию - что я должен был сделать вначале, чтобы убедиться, что моя подготовка и подписание работают. Он построен и работает на моем устройстве без проблем, поэтому все признаки указывают на проблему с моим кодом или проектом.

Я буду перебрасывать вещи из существующего проекта в новый образец проекта, и если он потерпит неудачу аналогичным образом, я смогу сузить проблему до меньшей интересующей области.


Я добавил основные функции приложения в новый проект, и он работает нормально. Единственное, что я на этот раз сделал иначе, так это то, что я не настроил универсальный двоичный файл (только для iPhone сейчас) и отключил все, кроме портретной ориентации. Насколько я могу судить, все остальное то же самое, хотя, если я решу изучить это позже, я сравню файлы проекта и посмотрю, что еще может отличаться.

Итак, я решил начать новый проект и перенести все функции из старого проекта в новый.

Возможно, воссоздание цели, как предлагает Пол в другом ответе, также исправит ее, но с таким простым перезапуском проекта с нуля для меня было легко.

person Community    schedule 21.03.2011
comment
У меня тоже была эта пробема. Я создал новый проект Xcode4 перед настройкой моего профиля сертификата / обеспечения, и он без проблем выдает ошибку. Как только они были настроены и я перезапустил Xcode, я смог запустить новый проект и запустить его без проблем. (Я знаю, что не очень помогает с существующим проектом.) - person zekel; 24.03.2011
comment
@zekel Интересно! Я также запустил проект и запустил его на симуляторе, прежде чем пройти процесс получения сертификатов и подготовки. Я полагаю, что у людей, которые не допустили истечения срока действия своих резервов во время обновления, тогда не было бы этой проблемы ... - person Adam Davis; 24.03.2011

У меня была такая же проблема, и, как и кто-то другой, предположил, что это связано с идентификатором пакета. Я недавно поменял его, в качестве теста, и поставил в нем звездочку. Я исправил это, и мне пришлось очистить цель, и тогда это сработало.

person Community    schedule 14.04.2011
comment
У меня тоже была звездочка, и ее удаление решило мою проблему. Спасибо, что упомянули об этом. - person SteveB; 05.07.2011
comment
Использование подстановочного идентификатора (например, com.developername. *) Также было причиной проблемы для меня. Возврат к com.developername по умолчанию. $ {PRODUCT_NAME: rfc1034identifier} решил проблему. В настоящее время я использую Xcode 4.0.2 - person GnarlyDog; 09.08.2011

Это случилось со мной после удаления неиспользуемой цели. Кажется, что Xcode поместил пробел в CFBundleIdentifier моей оставшейся цели (com.company.etc). Мне пришлось отредактировать Info.plist с помощью внешнего текстового редактора, чтобы удалить его, и тогда он работал нормально.

person Community    schedule 15.04.2011
comment
это случилось и со мной. под целями, сводкой, идентификатором я избавился от пробела в начале. Шиш-яблоко. Сколько ошибок вы можете создать? - person fregas; 08.06.2011
comment
Идентификатор пакета был моей проблемой. Это находится в файле Info.plist. - person bentford; 26.01.2012

Я просто играл с добавлением нескольких проектов в рабочую область и столкнулся с этой проблемой. У меня есть простая библиотека в одном из проектов, который я создавал, и я добавил цель на основе окна iOS, чтобы проверить ее. Я удалил первую цель, которую сделал для этого, чтобы переименовать ее. Прочитав это, я попытался удалить xcuserdata из пакета .xcodeproj, и это устранило мою проблему. Надеюсь, это поможет кому-то другому. Запуск Xcode 4.1 в OS X 10.7.1.

person Community    schedule 29.08.2011

Пройдя через все эти ответы, у меня была точно такая же проблема, но что-то другое решило ее для меня.

Проблема:

После рефакторинга сборка завершилась неудачно. (Переименовал класс с помощью Edit -> Refactor -> Rename).

Самое самое глупое решение за всю историю:

Выполните рефакторинг (переименуйте) что-нибудь еще (-_- "). После этого ошибка заключалась в том, что Xcode не смог переименовать все соответствующие файлы и не показывал ошибок. Затем, после другого рефакторинга, появились ошибки из предыдущего рефакторинга. .

person Community    schedule 22.05.2012
comment
это оно ! Я вручную переименовал свойство, и это вызвало проблему. Спасибо - person Laszlo; 20.10.2015

У меня была такая же проблема. Я пытался исправить это, произошел сбой xcode. Я снова открыл его, и он работал нормально. Может мне повезло что ли? Как бы то ни было, мне все равно, что с ним не так, пока он работает сейчас

person Community    schedule 02.06.2011

Если вы изменили идентификатор пакета и очистили проект, но это тоже не сработало, попробуйте очистить каталог / Users / YOUR_USERNAME / Library / Developer / Xcode / DerivedData.

Меня устраивает.

person Community    schedule 20.01.2012

Для меня сборка завершилась неудачно, без отображения ошибок в навигаторе проблем. Однако в навигаторе журналов в этом сеансе сборки я мог увидеть ошибку. В моем случае ошибка была необъявленной константой. Я импортировал требуемый файл заголовка, и проблема была решена. Я не уверен, почему эта ошибка не отображалась в навигаторе проблем.

Я попытался воспроизвести это поведение, намеренно изменив имя другой переменной. На этот раз ошибка отображалась в навигаторе проблем. Итак, я все еще не уверен, почему более ранняя ошибка не отображается в навигаторе проблем.

Надеюсь это поможет.

person Community    schedule 25.04.2012

Вышеупомянутые решения не работают для меня.

Мое решение - переместить проект в другую папку.

Ошибки сборки тогда просто появляются, как обычно.

person Community    schedule 08.10.2012

Вы очистили папку сборки? Перейдите в меню «Продукт», нажмите и удерживайте клавишу «Option» и выберите «Очистить папку сборки…»

person Community    schedule 20.03.2011
comment
Это не изменило результатов. - person Adam Davis; 21.03.2011
comment
Не повлекло за собой изменений - person Jayprakash Dubey; 29.01.2015

Я знаю, в чем проблема: в Info.plist -> Bundle Identifier: вы не можете использовать '_'. Например, com.mycompany.My_app недействителен, но com.mycompany.My-app в порядке.

person Community    schedule 25.04.2011

У меня была точно такая же проблема при попытке скомпилировать существующий проект в xcode 4, и я почти прошел через боль воссоздания проекта.

Однако в последней попытке я заменил файл info.plist на новый, который включал дополнительные теги для «типов документов», «типов URL», «UTI экспортированного типа» и «UTI импортированного типа».

Казалось, что это сработало, и это было на удивление простым исправлением для моего проекта.

person Community    schedule 07.04.2011

Это случилось со мной с моей целью UnitTest. Работал, а потом перестал. Я забыл, что просто удалил .h / .m в файловой системе и не удалил его из файла проекта, однако XCode не сообщил об этом.

Я понял это, запустив проект в командной строке, которая сообщила мне об ошибке:

/usr/bin/xcodebuild -target "UnitTest"

Запустите это в папке, в которой находится файл проекта, и замените UnitTest своей целью - или просто не передавайте цель для создания цели по умолчанию.

person Community    schedule 09.11.2011

У меня тоже была эта проблема, но причина была в другом:

У меня есть рабочее пространство с одним проектом. В этом проекте я использую фреймворк, который включается путем добавления проекта Xcode в мой проект. Я импортировал файл заголовка фреймворка в свой заголовок префикса (.pch). Это было глупо.

Решением было удалить #import заголовочного файла фреймворка из моего заголовочного файла префикса и добавлять его только там, где это необходимо.

person Community    schedule 26.01.2012

Та же проблема здесь при сборке для устройства. Сборка не удалась, но в моем журнале все отмечены зелеными галочками. Очистка / удаление папки сборки не исправляет. Я читал в другом месте, что кто-то решил эту проблему, удалив и воссоздав цель, но я еще не совсем понял, как это сделать в XCode 4.


Мое временное решение - загрузить и установить XCode 3.2.6 с iOS 4.3. Я не понимал, что Apple также выпустила версию XCode 3, включающую iOS 4.3, позволяющую отложить обновление до XCode 4. Я отправил в Apple отчет об ошибке по проблеме сбоя сборки.


обновление от Apple:

Когда мы создаем этот проект - хотя и в версии после Xcode 4.0 - мы видим следующее на шаге ProcessProductPackaging в журнале сборки:

(null): ошибка: CFBundleIdentifier 'com.yourcompany.Magic_Carpet' содержит недопустимый символ '_' недопустимый идентификатор пакета 'com.yourcompany.Magic_Carpet'

Код ProcessProductPackaging был обновлен сравнительно недавно, поэтому мы подозреваем, что он просто неправильно выдает ошибки в Xcode 4.0. Взгляните на стенограмму вашей собственной сборки, и если да, то это, вероятно, будет исправлено в будущем выпуске Xcode (мы не можем комментировать дальше, пока не будет выпущено исправление).

Я перешел с подчеркивания на тире, и проблема была решена.

person Community    schedule 20.03.2011

То же самое случилось со мной по другой причине.

Я удалил get-task-allow из файла Entitlements.plist, оставив пустой список. В настройках сборки все еще был файл Entitlements.plist, указанный как мой файл Entitlements. Выбрал запуск с использованием моих настроек сборки Ad-Hoc на устройстве iOS с подключенным iPhone и увидел поведение, описанное в этой ошибке. Добавление get-task-allow back исправило это.

person Community    schedule 09.07.2011

похоже, что есть много возможных причин этой проблемы. Мой оказался таким

Моя цель была настроена на использование несуществующего профиля подготовки.

Я настроил свой проект на использование нового профиля и удалил старый. Не осознавал, что у цели был свой собственный параметр профиля подготовки, который по-прежнему был установлен на старый (теперь удаленный) профиль.

person Community    schedule 11.01.2012

Просто чтобы добавить еще один ответ после безуспешной попытки ВСЕ вышеперечисленного: мне пришлось перезапустить MacBook, а не только закрыть XCode, и это сработало для меня. Это закончилось тем, что XCode показал некоторые ошибки в Localizable.strings, которые он не отображал раньше.

надеюсь, это поможет

person Community    schedule 20.06.2012
comment
У меня было что-то похожее, Xcode 5.0.2: в одной из моих Localizable.strings была синтаксическая ошибка, которую Xcode не отображал при сборке. - person Bart van Kuik; 16.12.2013

Я очищаю все пробелы в схемах проекта в xcschemes, и это решает эту проблему. Бля, Apple :( AppCode ROCKS!

person Community    schedule 15.10.2012

см. http://developer.apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html

Набор символов UTI. Идентификатор унифицированного типа - это строка Unicode, которая обычно содержит символы в наборе символов ASCII. Однако разрешена только часть символов ASCII. Вы можете использовать латинский алфавит в верхнем и нижнем регистре (A – Z, a – z), цифры от 0 до 9, точку («.») И дефис («-»). Это ограничение основано на ограничениях DNS-имен, установленных в RFC 1035.

Идентификаторы унифицированного типа также могут содержать любой из символов Юникода, больший, чем U + 007F.

Важно: любой недопустимый символ, появляющийся в строке UTI, например подчеркивание ("_"), двоеточие (":") или пробел (""), приведет к тому, что строка будет отклонена как недопустимый UTI. На уровне API ошибка не создается для недопустимых UTI.

person Community    schedule 02.08.2011

У меня не было проблем с названием пакета, поэтому предложенные решения мне не помогли. Наконец, я установил знак «Не кодировать» для сборки, затем закрыл проект, затем удалил подготовку в органайзере, затем загрузил новую подготовку и добавил ее в органайзер, а затем установил их для сборки. Это сработало.

person Community    schedule 15.09.2011

Это не технический ответ, а ответ «ошибка пользователя», который, вероятно, не относится к вашей ситуации. Это случилось со мной, и мои поиски привели меня к этим вопросам и ответам безрезультатно - пока я не осознал свою ошибку. У меня был установлен фильтр в навигаторе проблем, который не соответствовал ничему, о котором сообщалось как о проблеме. Когда я очистил фильтр, проблемы были отображены.

Обратите внимание, что симптомы были такими же, о которых вы спрашивали, и я понятия не имею, когда я установил этот фильтр (он должен быть унаследован от других представлений навигации), поскольку мне не потребовалась бы какая-либо фильтрация в коротком списке.

person Community    schedule 14.03.2012

У меня была похожая проблема. Не удалось нигде найти ошибку. Удалил все мои профили подготовки и добавил новые.

Затем я попытался создать еще одно тестовое приложение для своего устройства и получил следующее сообщение об ошибке:

Ошибка подписи кода: идентификатор сертификата «iPhone Developer: xxxxxx» появляется в цепочке для ключей более одного раза. Для инструмента кодовой разработки требуется только один.

Итак, я зашел в Связку ключей, нашел пару просроченных сертификатов с тем же именем и удалил их, и это помогло.

Довольно случайный, но, возможно, если вы попытаетесь создать другое приложение для устройства, как это сделал я, вам может повезти, и вы получите сообщение об ошибке, как и я, чтобы помочь диагностировать проблему.

person Community    schedule 16.03.2012

Перейдите в Организатор в xcode. И на вкладке «Проект» удалите этот проект. Позвольте xcode восстановить производные данные снова, чтобы исправить мою проблему.

person Community    schedule 24.08.2012

Я столкнулся с аналогичной проблемой в XCode4.5, и во время работы над моим приложением XCode внезапно разбился.

После нескольких часов поиска я обнаружил, что один из моих файлов в моем приложении был удален при сбое xcode.

Я восстановил файл из корзины, и проблема была решена.

person Community    schedule 02.01.2013

Я программировал приложение для Mac OS X без кодовой подписи. Когда я включил песочницу в разделе «Права», автоматически включалась кодовая подпись, и я не мог создать новую сборку.

person Community    schedule 24.02.2013

В моем случае причина заключалась в том, что в одной из моих Локализованных строк в конце не было ;: Итак, "You’ve already passed the test" = "Тест по этому слову уже пройден" без ; в конце приводит к ошибке сборки без проблем.

person Community    schedule 17.03.2013

Проверьте наличие пробелов в имени. Не только имя (-я) вашей цели (-ей), но также и схемы сборки. Для меня удаление пробелов помогло.

person Community    schedule 28.05.2014

У меня была аналогичная проблема, и исправление заключалось в удалении названия проекта с помощью верблюжьей коробки.

person Community    schedule 02.12.2012

У меня была та же проблема, и я исправил ее, добавив отсутствующее включение, используемое для макроса, определенного в файле префикса.

У меня есть этот макрос, определенный в файле префикса:

#define ApplicationDelegate ((tdAppDelegate *)[UIApplication sharedApplication].delegate)

но в файл, который я использовал, я забыл включить файл "tdAppDelegate.h";)

person Community    schedule 11.12.2012

Я обнаружил, что мне не хватает фреймворка. Я использовал MFMailViewController и добавил ссылку на

 MessageUI/MessageUI.h

но я случайно забыл добавить его в проект ... Если вы не знаете, как добавить фреймворк в проект:

Дважды щелкните имя проекта в Project Navigator -> Select Build Phases -> Разверните вкладку Link Binary with Libraries. Вы увидите + и -. Выберите +, чтобы добавить фреймворк. Введите имя, которое вы хотите добавить, и когда увидите его, щелкните по нему и нажмите ДОБАВИТЬ.

person Community    schedule 04.01.2013

Просто перепробовал все, что было в этом посте, и ничего не получилось.

Затем зашел в меню Apple> Обновление программного обеспечения> обнаружил, что было обновление xcode.

Я еще не установил обновление, но просто оставив это окно открытым, проблема решается (когда я закрываю окно обновления, проблема возникает снова).

Я думаю, это должно быть довольно редко, но, надеюсь, для некоторых это решит проблему.

person Community    schedule 04.04.2013

В моей ситуации это проблема компиляции кода. но XCODE не напоминает об ошибке компиляции.

person Community    schedule 27.09.2013

Если ваш проект Xcode содержит подпроекты, попробуйте закрыть родительский проект и напрямую открыть дочерний проект Xcode.

В моем подпроекте была ошибка, но она не отображалась в списке ошибок родительского проекта, когда я создавал цель подпроекта. Но когда я открыл единственный проект Xcode и построил тот же проект, появилась ошибка.

person Community    schedule 21.10.2013

Моя ошибка заключалась в том, что я случайно набрал букву в строке 1 моего main.m файла и случайно сохранил ее.

Я собирался потерять надежду и перенести свой код в новый проект, пока случайно не открыл свой main.m файл в Finder. Жаль, что компилятор не увидел эту ошибку.

person Community    schedule 14.12.2013

Для меня это было устаревшим в библиотеке JSONKit. Он обращался к свойству isa объекта, который устарел, вместо этого мы должны использовать object_setClass().

person Community    schedule 06.05.2014

Xcode 6.1

Моя проблема заключалась в том, чтобы оставить ошибку в одном файле .m, затем перейти к другому и закрыть Xcode без исправления ошибки в первом файле .m. После того, как я снова открыл Xcode, ошибка не отображалась, пока я не перешел к первому файлу .m. Потом он появился без всякого вмешательства.

person Community    schedule 10.05.2015

Я использовал один макрос из файла, который не был импортирован, после импорта этого файла проблема решена.

person Community    schedule 16.10.2015

Для меня я проверил скрытые (не перечисленные) проблемы с помощью Product -> Analyze. В случае сбоя анализа будут перечислены все скрытые ошибки.

person Community    schedule 08.04.2016

Для меня это начало происходить после того, как я добавил строку: «~ Документы» в: Настройки сборки -> Пути поиска заголовков.

После того, как я удалил его, отладчик снова заработал.

person Community    schedule 11.01.2018