Подтвердить что ты не робот

Ошибка Apple Mach-O Linker Ошибка ZBarSDK при создании для распространения

У меня появилась такая же ошибка при использовании ZBarSDK, библиотеки сканирования бара для iOS. Он отлично работает, когда я загружаю его на свое устройство разработки или тестирую его на симуляторе iOS6. Но когда я пытаюсь запустить его для распространения, он терпит неудачу:

(null): Файл является универсальным (3 среза), но не содержит (n) armv7s slice:/Users/quique123/Documents/iphone apps/ScanThis/ZBarSDK/libzbar.a для архитектуры armv7s

где libzbar.a - это библиотека из sdk.

Любые идеи?

4b9b3361

Ответ 1

Просто удалите плохую архитектуру из Valid Architectures в Target Aguilar Settings, и вы хорошо пойдете:)

Ответ 2

Откройте код ZBar Рекурсивный код рекурса

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/summary

Перейдите к ссылкам bz2/zip/gz, чтобы загрузить источник тока (в предпочтительном формате)

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.bz2 (начиная с этой даты) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.zip (начиная с этой даты) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.gz (начиная с этой даты)

Откройте подкаталог "iphone"

Откройте файл zbar.xcodeproj

В меню схемы выберите libzbar и создайте собственную бинарную версию в поддерживаемой архитектуре

Откройте DerivedData для этого проекта и выберите Build/Products/

Посмотрите все папки для libzbar.a

Ответ 3

Когда вы выбрали цель > Настройки сборки (Все) > Архитектуры > Действительные архитектуры.

Когда вы получите вышеуказанную ошибку, удалите armv7 (возможно, теперь [armv7 armv7s]), дважды щелкнув по строке и выберите armv7s и нажмите кнопку (-).

В моем случае это решило ошибку. Не уверен, что это будет иметь другие недостатки далее..

EDIT: теперь я уверен, что это имеет хотя бы один недостаток: проект не подходит для iPhone 5. Решение для этого - перекомпиляция источников ZBar, как указано здесь: Библиотека ZBar для iPhone 5 (ARMV7)

Ответ 5

Я только что заменил в настройках сборки/допустимых архитектур: "armv7" для двух строк "armv6" и "armv7"

(Обычно я использовал эту ошибку компоновщика только при отправке в iTunes, но не в отладке устройства)

Ответ 6

Просто удалите "armv7s", это будет работать:)

Ответ 7

Установите "Только создать активную архитектуру" на YES для выпуска. Я исправил свою проблему, сделав это, когда столкнулся с этой проблемой.