Ответ 1
Вы также можете получить эту ошибку, если вы включили файл .m вместо файла .h где-то в вашем коде.
мое первое приложение для iPhone готово к отправке с помощью приложения Uploader. Я думаю, что я понимаю, что мне нужно создать файл, перейдя в Product: Archive в Xcode, но когда я это сделаю, я получаю это сообщение:
ошибка: невозможно открыть исполняемый файл '/Users/Library/Developer/Xcode/DerivedData/test-euevazxsqeehnwantvxjhqwkytxr/ArchiveIntermediates/test/InstallationBuildProductsLocation/Applications/test.app/test'
Приложение строит и работает отлично на моем телефоне и на симуляторе, поэтому, пожалуйста, я могу посоветовать, как это исправить? Спасибо.
Вы также можете получить эту ошибку, если вы включили файл .m вместо файла .h где-то в вашем коде.
Product>Clean
и Product>Clean Build Folder
(нажмите и удерживайте нажатой кнопку). Закройте Xcode и снова закройте, и все должно быть хорошо. Если нет, зайдите в Организатор, выберите "Проекты", найдите "Тест" и удалите его папку "DerivedData" (ВАЖНО: NOT SNAPSHOTS).
эта ошибка возникает из-за некоторых вещей уровня класса, когда u name class и генерирует свойства set getter setter с @synthesize. он генерирует методы с именами get и set, входящими в состав свойств. Вероятно, у вас есть класс, содержащий такие имена. Точный способ узнать это - щелкнуть навигатор проблем в окне навигатора. а затем щелкните по ошибке. прочитайте зеленую зону. вы узнаете, что у вас есть. и теперь удалите этот класс или что-нибудь еще. создайте его снова с каким-то другим именем. prblm будет решена.
В моем случае это оказалось вызвано недопустимой библиотекой (в частности, старой версией libz). После того, как я удалил это из моей папки фреймворков и добавил правильную библиотеку libz в разделе фаз сборки целевых настроек, она была построена как обычно.
Вы можете получить этот тип ошибки, если файл .m файла вашего класса не указан в разделе "Источники компиляции" на вкладке "Сборка фаз" вашей цели. Обычно Xcode делает это для вас, но иногда он теряет сюжет, и вам нужно добавить файл .m вручную.
Мне пришлось выложить все флаги компоновщика в основном проекте (рабочие области) и оставить его только в зависимостях.
//: configuration = Debug OTHER_LDFLAGS = -ObjC -M -all_load
//: configuration = Release OTHER_LDFLAGS = -ObjC -M -all_load
//: completeSettings = some OTHER_LDFLAGS
Вы получите эту ошибку, если какой-либо символ дублируется в любом месте проекта. Большинство компоновщиков выдают ошибку "дубликат символа" и сообщают вам имя символа и файла (ов), с которым у него есть проблема, но это не очень похоже на Apple.
Господь знает, какую ошибку они выдают, когда компоновщик не может фактически открыть файл.
Сегодня была та же проблема.
Строка сборки Xcode, вероятно, немного сумасшедшая и потеряла соединение с моими файлами libGoogleAdMobAds.a
или my libGoogleAnalyticsServices.a
.
Удалить их импортировать обратно - исправлено.
Надеялся, я помог.