Файл является универсальным(три среза), но он не содержит (n) ошибки среза ARMv7-s для статических библиотек на iOS, в любом случае, чтобы обойти?


я модернизировал Xcode версия и при использовании внешних статических библиотек, я получаю это сообщение:

ld: файл является универсальным (3 фрагмента), но не содержит (n) фрагмент armv7s: / file / location для архитектуры armv7s clang: ошибка: не удалось выполнить команду компоновщика с кодом выхода 1 (Используйте-v для просмотра вызова)

есть ли способ обойти это и добавить поддержку в библиотеку, если разработчик библиотеки не обновил свою библиотеку пока что?

8 403

8 ответов:

Если вы хотите убрать поддержку для любой архитектуры, например, ARMv7-s в вашем случае, используйте меню проект ->Параметры Построения -> удалите архитектуру из "допустимых архитектур".

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

кроме того, вы можете установить флаг для конфигурации отладки "Строить только активную архитектуру" - да. Оставьте конфигурацию выпуска "строить только активную архитектуру" нет, просто чтобы вы получили напоминание перед выпуском, что вы должны обновить любые сторонние библиотеки, которые вы используете.

Я просто переключил "строить только активную архитектуру" на " Да " в настройках сборки цели, и теперь все в порядке!

Попробуйте удалить armv7s из "допустимой архитектуры" проекта, чтобы освободить от этой проблемы для iOS 5.1 phone

Я только что опубликовал исправление здесь это также применимо в этом случае - в основном, вы делаете шестнадцатеричный поиск и замену во внешней библиотеке, чтобы заставить его думать, что это код ARMv7s. Вы должны быть в состоянии использовать lipo чтобы разбить его на 3 статические библиотеки, дублируйте / измените ARMv7, а затем используйте lipo снова собрать новую библиотеку для всех 4-х архитектур.

шквал поддержка iPhone 5 (ARMv7s) Как я уже упоминал во вчерашнем посте, Flurry начал работать над версией iOS SDK для поддержки процессора ARMv7s в новом iPhone 5 сразу после объявления в среду.

Я рад сообщить вам, что работа выполнена и SDK теперь доступен на сайте.

использовать меню проект - > настройки сборки ->

затем удалите armv7s из"допустимых архитектур". Если был выбран стандарт, удалите его, а затем добавьте armv7.

в случае, если это произойдет с кем-то. Я построил свою собственную библиотеку для использования с кодом третьей стороны. В то время как я строил его для доставки, я случайно оставил свой iPhone 4S подключенным, и поэтому Xcode построил свою библиотеку только для подключенной архитектуры вместо того, чтобы следовать настройкам проекта. Удалите все подключенные устройства и восстановите библиотеку, свяжите ее, и все будет в порядке.

надеюсь, что это помогает.

в моем случае я ссылался на стороннюю библиотеку, которая была немного старой (разработана для iOS 6, на XCode 5 / iOS 7). Поэтому мне пришлось обновить стороннюю библиотеку, сделать чистую и построить, и теперь она успешно строится.