При создании приложения для iPhone я получаю эту ошибку:
ld: предупреждение: в /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit отсутствует требуемая архитектура i386 в файле
То же самое для всех фреймворков в моем приложении. Это очень странно, ведь раньше этого не происходило.
iphone
cocoa-touch
Гейб Шахбазян
источник
источник
Ответы:
Это происходит, когда вы добавляете фреймворк в свой проект и непреднамеренно копируете фреймворк в каталог проекта.
Исправление состоит в том, чтобы проверить каталог вашего проекта (где вы храните свой проект на диске) на наличие любых файлов iphone SDK * .Framework и удалить их.
Дальше проект будет строиться нормально.
источник
У меня была такая же проблема, и решение оказалось простым. Сделайте резервную копию, затем откройте project.pbxproj (расположенный внутри вашего пакета файлов проекта) в TextMate или TextEdit и найдите раздел под названием «/ * Begin XCBuildConfiguration section * /». Найдите ключ с именем FRAMEWORK_SEARCH_PATHS и удалите его и его содержимое (один раз для каждой конфигурации сборки, поэтому я удалил его в двух местах). Вот пример того, что я удалил:
Мой проект теперь построен как для устройства iPhone, так и для iPhoneSimulator.
источник
Здесь произошло то, что Xcode таинственным образом добавил запись «Framework Search Paths», которая указывает на конкретный SDK устройства iPhone. Например, мой недавно был установлен на:
Это заставляет компилятор находить фреймворки неправильной архитектуры. Удаление любых значений в разделе «Пути поиска платформы» в настройках целевой сборки решит проблему.
источник
Я просто хотел упомянуть, что в XCode, если вы перейдете в «Редактировать настройки проекта» и найдете «Пути поиска», появится поле для «Пути поиска фреймворка». Обновление должно решить проблему без взлома файла проекта!
Ура!
Джесси
источник
Убедитесь, что вы не скопировали фреймворк в свой проект при его добавлении. Если вы его скопировали, он не сможет найти исходные пути. Чтобы исправить эту проблему. Удалите фреймворк AVFoundation из папки фреймворков в своем проекте, затем добавьте его снова, но на этот раз убедитесь, что у вас не отмечен флажок копирования.
Это исправило это для меня!
источник
источник
Если ваше приложение предназначено для запуска на устройстве, убедитесь, что вы не пытаетесь запустить его на симуляторе. Может показаться очевидным, но все равно проверьте.
источник
Хотя возможно, что что-то было удалено, по моему опыту, что-то не так в файле проекта. Мне еще предстоит определить, что это за «что-то». У меня были аналогичные проблемы, когда установка SDK была в порядке. Есть несколько вариантов.
Сначала добавьте все свои файлы в новый проект. Кажется, это обычно работает. Хотя вроде как больно.
Во-вторых, вы можете щелкнуть проект правой кнопкой мыши в XCode / Get Info / Build / Library Search Paths. Добавьте новые пути, аналогичные /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/usr/lib. Добавьте соответствующие версии этой строки для каждой версии (2.2.1 и т. Д.) И платформы (симулятор или iPhoneOS). Выполните аналогичное действие для путей поиска фреймворка, если ваша проблема связана с фреймворками.
В-третьих, что более трудоемко, но более надежно, это открыть project.pbxproj из MyProject.xcodeproj (Textmate для этого подходит). Найдите «/ * Начало раздела XCBuildConfiguration * /», затем «LIBRARY_SEARCH_PATHS» и «FRAMEWORK_SEARCH_PATHS». При необходимости добавьте или измените пути и сохраните файл.
В любом случае, боль в ягодицах, и я обязательно хотел бы указать причину, потому что это случалось у меня пару раз. Проект строится нормально, затем просто запускается и отказывается сделать это по, казалось бы, незначительной причине.
источник
«Редактировать настройки проекта» и найти «Пути поиска». Есть поле для «Пути поиска фреймворка». удалить все!!
источник
Это случилось и со мной. Мы нашли ответ благодаря прекрасному партнеру. Ваш Xcode может указывать на симулятор ... вместо этого замените его на устройство IOS ... после ...
источник
Запустите команду файла на платформе из Терминала:
Вы должны получить обратно сообщение о том, с какими архитектурами совместим двоичный файл UIKit. Если вы не видите «i386» в списке, значит, вам каким-то образом удалось удалить версию UIKit для i386, что будет означать, что вы не можете собрать для симулятора. Чтобы исправить это, вам придется переустановить SDK.
Если вы получите другую ошибку, надеюсь, это поможет вам выяснить, в чем проблема.
источник
Я просто хочу сообщить вам, что в моем случае у меня была такая же проблема, я понял, что у меня есть более старая папка Xcode под названием Xcode3.1.3. Я просто переименовала ее, потому что это была более старая версия, и это помогло мне.
источник
Проверьте пути поиска вашей библиотеки в ваших целевых настройках. Иногда туда попадают глупые библиотеки, и это даст вам аналогичную ошибку.
Вы можете удалить все записи в этом разделе.
источник
Я просто испытал что-то немного другое, потому что я работаю над своей собственной библиотекой (WM_GSRecognizerLib), но ошибка та же.
Что произошло: из-за некоторых обновлений путь к включаемой библиотеке (.a) находился в папке «Debug-iphoneos» (где она создается). Компиляция для Generic iOS Devices работала нормально, но не для симулятора из-за отсутствия архитектуры i386.
Что я сделал для этой проблемы, так это также включил двоичные файлы из папки «Debug-iphonesimulator».
Это может помочь в этой теме, потому что объяснение здесь: устройствам требуются двоичные файлы для arm64 / armv7 / armv7s, в то время как симулятору требуется i386.
источник
Мое решение состояло в том, чтобы установить целевую отладку симулятора ДА, просто посмотрите на git status, чтобы увидеть новую строку, добавленную как архитектуру только в .project. если вы не установите это значение, сборка будет запущена на всех архитектурах и покажет недостающую архитектуру, например i386 или другую. ПРИМЕЧАНИЕ. Очевидно, что основная проблема заключается в использовании некоторой структуры, реализующей какую-то конкретную архитектуру.
источник
У меня тоже была та же ошибка, что и при использовании xcode версии 4.0.2, поэтому то, что я сделал, было выбрано из файла проекта xcode, и из них я выбрал опцию Target, и я мог видеть приложение моего проекта, поэтому я щелкнул по нему и перешел к сборке вариант настроек.
В параметре поиска я набрал путь поиска Framework и удалил все настройки, а затем нажал кнопку сборки, и это сработало для меня отлично,
Спасибо и привет
источник